The example again adopts the CVImage to demonstrate the use of blur filter. It uses the medianBlur() function from the Imgproc module in OpenCV. Detailed description can also be found in the OpenCV tutorial here.
import processing.video.*; import org.opencv.imgproc.Imgproc; import org.opencv.core.CvType; import org.opencv.core.Size; Capture cap; CVImage img; PShape shp; void setup() { size(640, 480, P3D); println(Core.VERSION); System.loadLibrary(Core.NATIVE_LIBRARY_NAME); cap = new Capture(this, width, height); cap.start(); img = new CVImage(width, height); shp = createShape(RECT, 0, 0, width, height); } void draw() { background(0); arrayCopy(cap.pixels, img.pixels); img.toCV(); // load the pixels to Mat Mat src = img.getBGR(); Mat dst = new Mat(src.size(), src.type()); Imgproc.medianBlur(src, dst, 9); img.fromCV(dst); // update the img with Mat dst shp.setTexture(img); shape(shp, 0, 0); text("Frame rate: " + nf(round(frameRate), 2), 10, 20); src.release(); dst.release(); } void captureEvent(Capture c) { c.read(); c.loadPixels(); } |
The major statement is
Imgproc.medianBlur(src, dst, 9); |
The number 9 is the aperture linear size to control the amount of ‘blurriness’.