rlm@356: #+title: Fun with Gabor Filters rlm@356: #+author: Robert McIntyre rlm@356: #+email: rlm@mit.edu rlm@356: #+description: gabor filters in clojure with opencv rlm@356: #+keywords: computer vision, jMonkeyEngine3, clojure, opencv rlm@356: #+SETUPFILE: ../../aurellem/org/setup.org rlm@356: #+INCLUDE: ../../aurellem/org/level-0.org rlm@356: #+babel: :mkdirp yes :noweb yes :exports both rlm@356: rlm@356: rlm@356: rlm@356: #+name: gabor rlm@356: #+begin_src clojure rlm@357: (ns cortex.gabor rlm@357: (:import org.opencv.core.CvType) rlm@357: (:import java.awt.image.BufferedImage) rlm@357: (:import ij.ImagePlus) rlm@358: (:import org.opencv.core.Mat) rlm@357: (:use cortex.sense) rlm@357: (:use cortex.util) rlm@357: ) rlm@356: rlm@356: (defn load-opencv rlm@356: "Load the opencv native library. Must be called before any OpenCV rlm@356: stuff is used." rlm@356: [] rlm@356: (clojure.lang.RT/loadLibrary "opencv_java249")) rlm@356: rlm@358: (defn make-kernel [] rlm@358: (let [r (org.opencv.core.Mat. 5 5 CvType/CV_32F)] rlm@358: (.put r 0 0 (float-array (map (fn [_] (rand)) (range 25)))) rlm@358: (println (.dump r)) rlm@358: rlm@358: ;;r rlm@358: rlm@358: (org.opencv.core.MatOfFloat. (float-array [1])) rlm@358: )) rlm@356: rlm@357: (defn convolve-practice [] rlm@357: (let [input "/home/r/proj/cortex/images/dominos.jpg" rlm@357: rlm@357: rlm@357: output "/home/r/ppp.png" rlm@356: rlm@357: i (org.opencv.highgui.Highgui/imread input) rlm@358: rlm@358: kernel (make-kernel) rlm@358: rlm@358: new-mat (Mat.) rlm@358: rlm@357: ] rlm@356: rlm@358: (org.opencv.imgproc.Imgproc/filter2D i new-mat CvType/CV_32F (make-kernel)) rlm@358: rlm@358: (org.opencv.highgui.Highgui/imwrite "/home/r/ppp.png" new-mat) rlm@358: rlm@357: (view (ImagePlus. input)) rlm@357: (view (ImagePlus. output)) rlm@358: rlm@357: )) rlm@357: rlm@357: rlm@357: rlm@357: rlm@357: rlm@357: rlm@357: rlm@357: (comment rlm@357: ;; these work rlm@357: (def i (org.opencv.highgui.Highgui/imread rlm@357: "/home/r/proj/cortex/images/dominos.jpg")) rlm@357: rlm@357: (org.opencv.highgui.Highgui/imwrite "/home/r/ppp.png" i) rlm@357: ) rlm@356: #+end_src rlm@356: rlm@356: rlm@356: rlm@356: * COMMENT Generate Source rlm@356: #+begin_src clojure :tangle ../src/cortex/gabor.clj rlm@356: <> rlm@356: #+end_src