전공지식정리/영상처리(Image Signal Processing)

3. Binary, Morphology

TimeSave 2022. 1. 20. 21:19

 

1. Binary

 

Gray Scale 이미지에서, 특정 Threshold를 잡아서.

각 Pixel 들을 극단적으로 처리한다.

높으면 100 낮으면 0 [ 흰색 = 255, 검은색 =0]

 

1.1 OpenCV의 함수

OpenCV에는 2가지 방식으로 binary를 처리할 수 있다.

 

1.2 CvThreshold

1.3 cvAdaptiveThreshold

 

 

2. Morphology

-> n. 형태학

사전에는 학문을 뜻하는 형태학이라고 나오는데, 형태변환을 생각하면 되겠다.

 

이미지의 형태를 변환하는 것으로, Iteration(반복법)을 적용하여 3회,5회 등의 같은 연산을 반복하여 처리하기도 한다.

 

 

기본적으로 Image Processing의 Morphology는 수학에서 왔다.

원리를 모르고 단순히 library 가져다 쓰는 것은, 엔지니어가 아니다.

그러다 보면, 부가가치를 만들어 내지 못하고, 최적화도 시키지 못한다.

[Morphology에 대한 설명은, 시간날때 정리해서 보충, 글 끝의 링크 참조]

 

 

2.1 Dilation(=dila·ta·tion)

-> n. 확장. 팽창이란 뜻이다.

-> Kernel안의 최고값을 찾아서 끝에 붙인다(확장한다).

 

2.2 Erosion

-> n. 부식,침식 이란 뜻이다.

-> kernel 안의 최소값을 찾아서 대입시킨다.

 

2.3 Open & Close

Open은 애매한 선을 없애는 것이고

Close는 애매한 선을 연결하는 것이다.

스위치의 Open/Close를 생각하면 된다.

Erosion과 Dilation은 상보관계였다.

 

그래서 Open은 침식 -> 복원, Close는 확대 -> 복원 이된다.

 

 

복원 과정에서 군더더기를 제거하거나, 손실을 보충하게 된다.

 

2.5 TopHat

white Top Hat과 Black Top Hat이 있다.

일반적으로 Top Hat은 white TopHat이라 하고,

Black TopHat은 BlackHat이라 한다.

 

White Top Hat, Original - Open
Black Top Hat, Close - Original
white top hat을 적용한 결과(오른쪽)

 

White Top Hat, 줄여서 TopHat은 작은 blob(얼룩)만 얻고 싶을 때 사용한다.

 

특정 Threshold(예를 들어 반지름)을 설정한뒤 적용하면, 오른쪽과 같이 흰부분을 제거하여 검은색으로 만들 수 있다.

Open을 하게되면 중간의 흰부분이 다 제거되고, 큰 흰색 덩어리만 남는다.

원본에서 이 흰색덩어리만 빼게 되므로, 흰부분이 제거되는 것이다.

 

BlackHat은 정반대로 연산하면 된다.

Close하게되면, 중간의 흰색과 그 주변을 살리게 되고,

이 픽셀값에서 원본을 빼게되면, 살린 부분만 남게 된다.

2.7 Gradient

Gaussian 아니다......

Gradient는 수학에서 말하는 그 gradient가 맞다.

한글로 경사도, 기울기 등으로 표현하기도 하는데,

Gradient = dilation - erosion ,

dilation과 erosion이미지의 차이값이 된다.

 

간단하게 생각하면, 이미지의 경사는,

해당 점 자체에서 주변점을 이용해 구하는 것보다.

팽창 - 침식을 통하면 변화값만 남아서

간단히 구할 수 있기 때문이다.

 

위의 Open/Close는 dilation후, Erosion 적용 등으로,

이미지 자체에 2번 적용해서 구하는 것이고

 

Gradient는 dilation과 erosion의 차이값는 얻는 것이다.

이것을 잘 구별하도록 하자.

 

 

2.8 정리

-> threshold 를 이용해 binary image를 얻는다.

-> Dilation, Erosion은 이미지 자체에 바로 적용한다.

-> Open,Close, TopHat, Gradient는 뺄셈이 추가된다.

-> 흰색 255, 검은색 0 이다.

-> library만 가져다 쓰는 사람이 되지 말자.

 

 

 

출처 :

Learning OpenCV. O'Reilly Media, Inc . Gary Bradski, Adrian Kaehler. 2008.10

https://en.wikipedia.org/wiki/Dilation_(morphology)

https://homepages.inf.ed.ac.uk/rbf/HIPR2/dilate.htm

https://en.wikipedia.org/wiki/Top-hat_transform

https://en.wikipedia.org/wiki/Morphological_gradient

Morphological gradient - Wikipedia

Morphological gradient From Wikipedia, the free encyclopedia Jump to navigation Jump to search In mathematical morphology and digital image processing , a morphological gradient is the difference between the dilation and the erosion of a given image. It is an image where each pixel value (typically

en.wikipedia.org