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