침식연산, 팽창연산의 확장



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
41
42
43
44
#include <opencv/cv.h>
#include <opencv/highgui.h>
 
 
void main() {
    IplImage *srcImage = cvLoadImage("D:/study/testimage2.jpg"-1);
    IplImage *openImage = cvCloneImage(srcImage);
    IplImage *closeImage = cvCloneImage(srcImage);
 
 
    //cvCreateStructuringElementEx(열의수, 행의수, 중심점x좌표, 중심점y좌표, 구조적요소 모양) : 구조적요소 정의 함수
    //구조적 요소 모양
    //CV_SHAPE_RECT : 사각형 구조적요소
    //CV_SHAPE_CROSS : 십자형 구조적요소
    //CV_SHAPE_ELLIPSE : 타원형 구조적요소
    //CV_SHAPE_CUSTOM : 사용자정의 구조적요소
    IplConvKernel *element = cvCreateStructuringElementEx(3311, CV_SHAPE_CROSS);
 
    //cvMorphologyEx(원본이밎, 결과이미지, 임시이미지, 연산종류, 연산횟수) : 팽창연산, 침식연산으로 부터 확장된 연산 수행
    //연산종류
    //CV_MOP_OPEN : 열림연산 (침식연산 수행후 팽창연산 수행)
    //CV_MOP_CLOSE : 닫힘연산 (팽창연산 수행후 침식연산 수행)
    //CV_MOP_GRADIENT : 기울기 연산
    //CV_MOP_TOPHAT : top hat 연산
    //CV_MOP_BLACKHAT : black hat 연산
    cvMorphologyEx(srcImage, openImage, NULL, element, CV_MOP_OPEN, 1);    //열림연산 수행
    cvMorphologyEx(srcImage, closeImage, NULL, element, CV_MOP_CLOSE, 1);    //닫힘연산 수행
 
 
 
    cvNamedWindow("original", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("open", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("close", CV_WINDOW_AUTOSIZE);
 
    cvShowImage("original", srcImage);
    cvShowImage("open", openImage);
    cvShowImage("close", closeImage);
 
    cvWaitKey(0);
 
    cvReleaseImage(&srcImage);
    cvReleaseImage(&openImage);
    cvReleaseImage(&closeImage);
}
cs



결과



'IT > - 프로그래밍' 카테고리의 다른 글

OpenCV 컬러영상을 흑백영상으로 변환하기  (0) 2017.05.12
OpenCV 동영상 재생하기  (0) 2017.05.11
OpenCV 침식연산 예제  (0) 2017.05.04
OpenCV 팽창연산 예제  (0) 2017.05.03
Cocos 충돌여부 체크하기  (0) 2017.05.02

+ Recent posts