팽창연산 예제
형태학 : 이미지의 경계와 골격을 추출하는 도구 (팽창연산, 침식연산, 열림연산 닫힌연산)
c++)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <opencv/cv.h> #include <opencv/highgui.h> void main() { IplImage *srcImage = cvLoadImage("D:/study/testImage2.jpg", -1); IplImage *rstImage1 = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3); IplImage *rstImage2 = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3); //형태학 : 이미지의 경계와 골격을 추출하는 도구 (팽창연산, 침식연산, 열림연산 닫힌연산) //팽창연산 : 물체의 크기를 확장하고 배경을 축소하는 역할 //cvDilate(원본이미지, 결과이미지, 구조적요소, 연산횟수) : 팽창연산 수행 //구조적요소 : 연산의 모양과 크기 결정 (기본값 : 3x3 사각형) cvDilate(srcImage, rstImage1, NULL, 3); //3x3 사각형 구조적요소로 팽창연산 3회 수행 //cvCreateStructuringElementEx(열의수, 행의수, 중심점x좌표, 중심점y좌표, 구조적요소 모양) : 구조적요소 정의 함수 //구조적 요소 모양 //CV_SHAPE_RECT : 사각형 구조적요소 //CV_SHAPE_CROSS : 십자형 구조적요소 //CV_SHAPE_ELLIPSE : 타원형 구조적요소 //CV_SHAPE_CUSTOM : 사용자정의 구조적요소 IplConvKernel *element = cvCreateStructuringElementEx(5, 5, 2, 2, CV_SHAPE_CROSS); cvDilate(srcImage, rstImage2, element, 3); //5x5 십자형 구조적요소로 팽창연산 3회 수행 cvNamedWindow("original", CV_WINDOW_AUTOSIZE); cvNamedWindow("dilate", CV_WINDOW_AUTOSIZE); cvNamedWindow("dilate2", CV_WINDOW_AUTOSIZE); cvShowImage("original", srcImage); cvShowImage("dilate", rstImage1); cvShowImage("dilate2", rstImage2); cvWaitKey(0); cvReleaseImage(&srcImage); cvReleaseImage(&rstImage1); cvReleaseImage(&rstImage2); } | cs |
결과
'IT > - 프로그래밍' 카테고리의 다른 글
OpenCV 침식연산, 팽창연산의 확장 (0) | 2017.05.10 |
---|---|
OpenCV 침식연산 예제 (0) | 2017.05.04 |
Cocos 충돌여부 체크하기 (0) | 2017.05.02 |
OpenCV 이미지 대칭하기 (0) | 2017.05.01 |
OpenCV 이미지 회전하기 (0) | 2017.04.30 |