# HG changeset patch # User Robert McIntyre # Date 1362625945 0 # Node ID fc5bb270596aaf5f06af2783e98d5d5eba1f6e16 # Parent 744ae7ef9b1424b3685e7f1948564db9b698c3d7 completed kernel visualization code. diff -r 744ae7ef9b14 -r fc5bb270596a org/gabor.org --- a/org/gabor.org Thu Mar 07 02:37:49 2013 +0000 +++ b/org/gabor.org Thu Mar 07 03:12:25 2013 +0000 @@ -31,9 +31,9 @@ (.put r 0 0 (float-array (map (fn [_] (rand)) (range 25)))) (println (.dump r)) - ;;r + r - (org.opencv.core.MatOfFloat. (float-array [0.5])) + )) (defn gabor-kernel [sigma aspect-ratio theta wavelength phase-offset] @@ -66,7 +66,7 @@ scale (reduce + (map gaussian grid)) gabor (fn [[x y :as coord]] - (* (sinusoid coord) (gaussian coord) scale)) + (* (sinusoid coord) (gaussian coord) (/ scale))) mat-width (+ 1 (* 2 half-width)) mat (Mat. mat-width mat-width CvType/CV_32F)] @@ -81,9 +81,24 @@ (defn show-kernel [kernel] - (let [output "/home/r/proj/cortex/tmp/kernel.png"] - (org.opencv.highgui.Highgui/imwrite output kernel) - (view (ImagePlus. output)))) + (let [output "/home/r/proj/cortex/tmp/kernel.png" + size (.size kernel) + width (int (.width size)) + height (int (.height size)) + tmp-array (float-array (* width height))] + + ;; read values from matrix. + (.get kernel 0 0 tmp-array) + + ;; find overall dynamic range of the filter + (let [vals (vec tmp-array) + low (apply min vals) + high (apply max vals) + scaled-vals (map #(* 255 (- % low) (/ (- high low))) vals) + new-mat (Mat. height width CvType/CV_32F)] + (.put new-mat 0 0 (float-array scaled-vals)) + (org.opencv.highgui.Highgui/imwrite output new-mat) + (view (ImagePlus. output))))) (defn print-kernel [kernel] (println (.dump kernel))) @@ -91,8 +106,7 @@ - - + @@ -105,13 +119,13 @@ i (org.opencv.highgui.Highgui/imread input) - kernel (make-kernel) + kernel (gabor-kernel 10 1 (/ Math/PI 2) 10 0) new-mat (Mat.) ] - (org.opencv.imgproc.Imgproc/filter2D i new-mat CvType/CV_32F (make-kernel)) + (org.opencv.imgproc.Imgproc/filter2D i new-mat CvType/CV_32F kernel) (org.opencv.highgui.Highgui/imwrite "/home/r/ppp.png" new-mat)