OpenCV and Processing 11

In this example, I demonstrate the use of the image processing module (Imgproc) with the filter2D function. It is similar to the generic Photoshop filter where you can design the convolution matrix. The example references the OpenCV tutorial and uses a sharpen filter. It also uses the CVImage class in the last post.

Here is a screen shot of the Processing window.


Continue reading

OpenCV and Processing 10

I decide to put together the OpenCV and Processing codes into a class to encapsulate the functions. In this example, I extend the original PImage class and create the CVImage class.  Besides the constructor, the following functions are the major interfaces:

  • toCV() – copy the content of the PImage pixels[] array to the internal Mat variable cvImg; the internal format for the Mat is BGRA.
  • fromCV(Mat) – convert a parameter Mat to the internal storage of Mat and pixels[] array; it accepts input of 1, 3, and 4 channels.
  • Mat getBGRA() – output the BGRA Mat from the internal Mat storage.
  • Mat getBGR() – output the BGR Mat from the internal Mat storage.
  • Mat getGrey() – out the greyscale Mat from the internal Mat storage.

Continue reading

OpenCV and Processing 6

To perform the same image loading task in OpenCV, we use the imread() function in the Imgcodecs module. The function was in the Highgui module before. The image loaded in the Mat data structure is in BGR format. We shall use the split and merge commands to align the proper channels. Finally, we use a byte array to transfer the pixels information to the pixels[] array of a PImage object.
Continue reading

OpenCV and Processing 5

Now we proceed to first core part of the tutorials, representation of image in Processing and OpenCV. In Processing, the class is PImage. Digital video, Movie and live webcam feed, Capture are also PImage. When we import the external image file from the data folder through loadImage(), the format will usually be RGB. The internal representation is, however, ARGB.
 
Continue reading