이미지 형태 학적 작업은 - 컬렉션 이미지 처리 작업의 일련의 모양에 따라
형태학 네 가지 기본 작업 : 팽창, 침식, 개폐
1. 확장 팽창
(가) 하부 커버 A B 최대 화소 값을 앵커 화소의 위치에서, 전체의 화소 값이 커진다
구조 요소 정의 :
매트 getStructuringElement ( INT의 모양, 크기 ksize, 포인트 앵커 = 포인트 (- 1 , - 1 ));
까지 형태는 타원형, 직사각형 수 있으며 같은이 MORPH_ * 참조가 될 수있다
구조 요소의 크기는 ksize-입니다
anchor- 기본 (-1, -1) 센터
작업의 확장 :
보이드 팽창 (InputArray SRC, DST OutputArray, InputArray 커널 포인트 앵커 = 점 (- 1 - 1 ), INT의 반복 = 1 , INT borderType = BORDER_CONSTANT, CONST 스칼라 borderValue morphologyDefaultBorderValue = ());
구조 요소의 정의는 커널 인
iterations- 여러 번 반복 실행
2. 부식 침식
하부 커버 B는 최소 픽셀 값 앵커 화소 대신에, 화소 값이 작아 전체적인
보이드 침식 (InputArray SRC, DST OutputArray, InputArray 커널 포인트 앵커 = 점 (- 1 - 1 ), INT 반복 = 1 , INT borderType = BORDER_CONSTANT, CONST 스칼라 borderValue morphologyDefaultBorderValue = ());
데모:
#INCLUDE <opencv2 / opencv.hpp> #INCLUDE <iostream> 사용 공간을 성병; 사용하는 네임 스페이스 이력서를; 매트 SRC, d_dst, r_dst, DST, bt_dst; 숯 출력 [] = " 팽창 이미지 " ; INT element_size = 3 ; INT MAX_SIZE = 15 ; 보이드 CallBack_Demo ( INT , 무효 * ); int로 주 ( INT의 는 argc, 숯불 ** 는 argv) { SRC = imread ( " D : /learning/image/5.jpg " , WINDOW_AUTOSIZE) 경우 (src.empty ()) { printf와는 ( " 볼 수없는 이미지 ... \ n " ); 리턴 - 1 ] } namedWindow (OUTPUT); // 设置拖动滑块控制크기大小 createTrackbar ( " 요소 크기 : " , OUTPUT, element_size, MAX_SIZE, CallBack_Demo) CallBack_Demo ( 0 , 0 ); waitKey ( 0 ) 복귀 0 ; } // 무효 CallBack_Demo ( INT , 공극* ) { 지능 S = element_size * 2 + 1이다. ] // 정의 구조 타입 요소 매트 structure_element = getStructuringElement (MORPH_RECT 크기 (S, S), 점 (- 1. - 1. )); // 팽창 (SRC에, DST, ; structure_element 가리킨 (-1, -1) ,. 1) // 확장 - (SRC에, DST, structure_element 가리킨 (침식 . 1 ,. 1 ) . 1 ) // 부식 imshow (출력을 DST) 반환 ; }
상기 createTrackbar 함수 넓은 부식의 동작을 제어하는 슬라이더를 만들고, 그 결과를하기와 같이
3. 열려