관리 메뉴

ComputerVision Jack

[컴퓨터 비전 - 이진화 & 모폴로지] 본문

Image Processing/Computer Vision

[컴퓨터 비전 - 이진화 & 모폴로지]

JackYoon 2020. 1. 31. 17:09
반응형

영상 이진화

영상의 이진화(Binarization) 영상의 픽셀을 두 개의 분류로 나누는 작업

Roi와 그렇지 않은 관심 영역으로 나누는 작업

영상의 이진화는 값을 0 or 255로 지정한다. (검은색과 흰색으로 나눈다)

영상의 이진화 수식

T임계값을 기준으로 이진화를 적용한다.

이진화 영역을 가시적으로 나눌 수 있다.

double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type);

#영상의 이진화를 진행하는 함수

 

적응형 이진화

영상의 모든 픽셀에 대해 같은 임계값을 적용하여 이진화 수행하는 방식을 전역 이진화라고 한다.

영상의 밝기 값이 다르기 때문에 전역 이진화의 한계가 존재한다.

 

따라서 각 픽셀마다 서로 다른 임계값을 사용하는 기법이 적용된다.

정해진 블록에서 픽셀값 분포에 따라 고유의 임계값을 설정하여 이진화 하는 방식

 

void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod,

                                                                               int thresholdType, int blockSize, double C);

#적응형 이진화 적용하는 함수

이진화 사용예제

보기의 예제는 좌하단은 어둡고 우상단은 밝게 되어 있는 스토구 사진이다.

적응형 이진화 적용

모폴로지 연산

모폴로지(morphology)

영상 처리 분야에서 영상의 객체의 형태 및 구조에 대해 분석하고 처리하는 기법

=수학적 모폴로지

주로 이진화된 영상에 대해서 모폴로지를 적용하여 영상을 단순화 하거나 잡음을 제거한다.

 

마스크를 이용하여 영상의 침식과 팽창을 적용한다.

3 x 3마스크에 대해 영상의 침식과 팽창

Mat getStructuringElement(int shapem Size ksize, Point anchor = Point(-1, -1));

#구조 요소를 간단히 생성해준다.

 

void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1, -1), int iterations = 1,

          int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue());

#영상의 침식 연산 적용하는 함수

 

void dilate(InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1, -1), int iterations = 1,

           int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue());

#영상의 팽창 연산을 수행하는 함수

 

이진영상 열기와 닫기

열기 연산 : 침식 연산 - 팽창 연산

닫기 연산 : 팽창 연산 - 침식 연산

 

void morphologyEx(InputArray src, OutputArray dst, int op, InputArray kernel, Point anchor = Point(-1, -1),

                                       int iterations = 1, int borderType = BORDER_CONSTANT,

                                                 const Scalar& borderValue = morphologyDefaultBorderValue());

#일반적인 모폴로지 연산을 수행하는 함수

ex_binaryT.cpp
0.00MB

반응형
Comments