8/23/2013

OpenCV morphologyEx, getStructuringElement function example source


This is example source code.


Mat img;
img = imread("moSample.jpg");

Mat element = getStructuringElement(MORPH_RECT, Size(3, 3), Point(1,1) );
Mat rImg;
morphologyEx(img, rImg, CV_MOP_CLOSE, element);
//morphologyEx(img, img, CV_MOP_CLOSE, element); -> It is also ok.

namedWindow("i");
imshow("i",img);
namedWindow("r");
imshow("r",rImg);
cvWaitKey(0);


In here
We can set filter box size and center point using getStructuringElement function.
-first parameter has
MORPH_RECT, MORPH_CROSS, MORPH_ELLIPSE
They show the shape of the filter box.

-second parameter means size of box.
-third parameter means center point of the box.

This picture is result of morphology processing.
using 9x9 box size /  4,4 center



Thank you.

Visual studio 2012 + OpenCV 2.46 Setting method

First of all, download opencv 2.46 on this page -> http://opencv.org/downloads.html
The version 2.4.6 is latest version.


Extract in appropriate folder. " C:\OpenCV264\ " this path is suitable.

In VS2012 setting..
In the project properties, add lib and include path information.


Copy all dll files in the 'C:\opencv246\build\x86\vc11\bin' paste them to 'C:\Windows\system' . 

and sample source code

------------------------------------------------

#include < stdio.h >
#include < opencv2\opencv.hpp >


#ifdef _DEBUG
#pragma comment(lib, "opencv_core246d.lib") 
#pragma comment(lib, "opencv_imgproc246d.lib")   //MAT processing
//#pragma comment(lib, "opencv_objdetect246d.lib") 
//#pragma comment(lib, "opencv_gpu246d.lib")
//#pragma comment(lib, "opencv_features2d246d.lib")
#pragma comment(lib, "opencv_highgui246d.lib")
//#pragma comment(lib, "opencv_ml246d.lib")
#else
#pragma comment(lib, "opencv_core246.lib")
#pragma comment(lib, "opencv_imgproc246.lib")
//#pragma comment(lib, "opencv_objdetect246.lib")
//#pragma comment(lib, "opencv_gpu246.lib")
//#pragma comment(lib, "opencv_features2d246.lib")
#pragma comment(lib, "opencv_highgui246.lib")
//#pragma comment(lib, "opencv_ml246.lib")
#endif

using namespace cv;


void main()
{
 Mat img;
 img = imread("test.jpg");
 namedWindow("t");
 imshow("t",img);
 cvWaitKey(0);
}



------------------------------------------------------------

Thank you.