From 956cfcaec993111426d91bcd61676b5fe0ebfd16 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Mon, 24 Feb 2014 21:02:53 +0000
Subject: [PATCH] Feature extraction using Imagenet
---
src/image.c | 48 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 35 insertions(+), 13 deletions(-)
diff --git a/src/image.c b/src/image.c
index 460df3d..1667977 100644
--- a/src/image.c
+++ b/src/image.c
@@ -4,6 +4,21 @@
int windows = 0;
+image image_distance(image a, image b)
+{
+ int i,j;
+ image dist = make_image(a.h, a.w, 1);
+ for(i = 0; i < a.c; ++i){
+ for(j = 0; j < a.h*a.w; ++j){
+ dist.data[j] += pow(a.data[i*a.h*a.w+j]-b.data[i*a.h*a.w+j],2);
+ }
+ }
+ for(j = 0; j < a.h*a.w; ++j){
+ dist.data[j] = sqrt(dist.data[j]);
+ }
+ return dist;
+}
+
void subtract_image(image a, image b)
{
int i;
@@ -342,21 +357,11 @@
return outImg;
}
-image load_image(char *filename, int h, int w)
+image ipl_to_image(IplImage* src)
{
- IplImage* src = 0;
- if( (src = cvLoadImage(filename,-1)) == 0 )
- {
- printf("Cannot load file image %s\n", filename);
- exit(0);
- }
- cvShowImage("Orig", src);
- IplImage *resized = resizeImage(src, h, w, 1);
- cvShowImage("Sized", resized);
- cvWaitKey(0);
- cvReleaseImage(&src);
- src = resized;
unsigned char *data = (unsigned char *)src->imageData;
+ int h = src->height;
+ int w = src->width;
int c = src->nChannels;
int step = src->widthStep;
image out = make_image(h,w,c);
@@ -369,6 +374,23 @@
}
}
}
+ return out;
+}
+
+image load_image(char *filename, int h, int w)
+{
+ IplImage* src = 0;
+ if( (src = cvLoadImage(filename,-1)) == 0 )
+ {
+ printf("Cannot load file image %s\n", filename);
+ exit(0);
+ }
+ if(h && w ){
+ IplImage *resized = resizeImage(src, h, w, 1);
+ cvReleaseImage(&src);
+ src = resized;
+ }
+ image out = ipl_to_image(src);
cvReleaseImage(&src);
return out;
}
--
Gitblit v1.10.0