From 34de475999a22ac7280411e15339e77a0c8dbc2e Mon Sep 17 00:00:00 2001
From: Joe Zhao <ztuowen@gmail.com>
Date: Tue, 12 May 2015 13:15:55 +0800
Subject: initial commit

---
 genFeatureVec.m | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100644 genFeatureVec.m

(limited to 'genFeatureVec.m')

diff --git a/genFeatureVec.m b/genFeatureVec.m
new file mode 100644
index 0000000..75fa0e8
--- /dev/null
+++ b/genFeatureVec.m
@@ -0,0 +1,55 @@
+function vec = genFeatureVec(img)
+    bins = 16;
+    ncnls = 8;
+    cnls = zeros(size(img,1), size(img,2),ncnls);
+    cnls(:,:,1:3) = img;
+    cnls(:,:,4:6) = rgb2ycbcr(img);
+    hsv = rgb2hsv(img);
+    cnls(:,:,7:8) = hsv(:,:,1:2);
+    % Schmid
+    scVec=[
+        1,2;
+        1,4;
+        2,4;
+        1,6;
+        2,6;
+        3,6;
+        1,8;
+        2,8;
+        3,8;
+        1,10;
+        2,10;
+        3,10;
+        4,10];
+    gbVec = [
+        0.3,0,4,2;
+        0.3,0,8,2;
+        0.4,0,4,1;
+        0.4,0,8,2;
+        0.3,pi/2,4,2;
+        0.3,pi/2,8,2;
+        0.4,pi/2,4,1;
+        0.4,pi/2,8,2;];
+    gb = length(gbVec);
+    sc = length(scVec);
+    vec=[];
+    for i = 1:sc
+        for cnl = 1:ncnls
+            filt = schmidFilter(scVec(i,1),scVec(i,2));
+            pos = real(sum(sum(filt.*(filt>0))));
+            neg = real(sum(sum(filt.*(filt<0))));
+            ss = (pos-neg)/bins;
+            v = histcounts(imfilter(cnls(:,:,cnl), filt, 'symmetric'),(0:bins)*ss+neg);
+            vec=cat(2,vec,v);
+        end
+    end
+    for i = 1:gb
+        for cnl = 1:ncnls
+            filt = gaborFilter(gbVec(i,1),gbVec(i,2),gbVec(i,3),gbVec(i,4));
+            pos = real(sum(sum(filt.*(filt>0))));
+            neg = real(sum(sum(filt.*(filt<0))));
+            ss = (pos-neg)/bins;
+            v = histcounts(real(imfilter(cnls(:,:,cnl), filt, 'symmetric')),(0:bins)*ss+neg);
+            vec=cat(2,vec,v);
+        end
+    end
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2