OpenCV에서 제공하는 Erosion, Dilation, Opening, Closing 연산하는 함수들을 다룹니다.
보통 바이너리 이미지(Binary Image)에서 흰색으로 표현된 오브젝트의 형태를 개선하기 위해 사용됩니다.
마지막 업데이트 - 2018. 10. 14
다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://docs.opencv.org/3.4.3/d6/d00/tutorial_py_root.html |
1. Erosion 2. Dilation 3. Opening 4. Closing |
1. Erosion
바이너리 이미지에서 흰색 오브젝트의 외곽 픽셀을 0(검은색)으로 만듭니다.
노이즈(작은 흰색 물체)를 제거하거나 붙어 있는 오브젝트들을 분리하는데 사용할 수 있습니다.
kernel = np.ones((5, 5), np.uint8) |
사용한 커널의 크기에 따라 오브젝트 외곽에서 0이 되는 픽셀의 정도가 달라집니다.
kernel = np.ones((5, 5), np.uint8) |
커널의 크기를 특정 크기(3, 3)으로 고정하고 Erosion 반복 횟수를 증가시켜서도 오브젝트 외곽에서 0이 되는 픽셀의 정도를 조절할 수 있습니다.
kernel = np.ones((3, 3), np.uint8) |
테스트에 사용한 원본 이미지와 코드입니다.
import cv2 |
2. Dilation
Erosion과 반대로 동작합니다. 바이너리 이미지에서 흰색 오브젝트의 외곽 픽셀 주변에 1(흰색)으로 추가합니다.
노이즈(작은 흰색 오브젝트)를 없애기 위해 사용한 Erosion에 의해서 작아졌던 오브젝트를 원래대로 돌리거나 인접해 있는 오브젝트들을 하나로 만드는데 사용할 수 있습니다.
kernel = np.ones((5, 5), np.uint8) |
사용한 커널의 크기에 따라 오브젝트 외곽에서 1이 되는 픽셀의 정도가 달라집니다.
kernel = np.ones((5, 5), np.uint8) |
커널의 크기를 특정 크기(3, 3)으로 고정하고 Dilation 반복 횟수를 증가시켜서도 오브젝트 외곽에서 1이 되는 픽셀의 정도를 조절할 수 있습니다.
kernel = np.ones((3, 3), np.uint8) |
테스트에 사용한 원본 이미지와 코드입니다.
import cv2 |
3. Opening
Erosion 연산 다음에 Dilation 연산을 적용합니다. 이미지 상의 노이즈(작은 흰색 물체)를 제거하는데 사용합니다.
노이즈(작은 흰색 오브젝트)를 없애기 위해 사용한 Erosion에 의해서 작아졌던 오브젝트에 Dilation 를 적용하면 오브젝트가 원래 크기로 돌아오게 됩니다.
kernel = np.ones((5, 5), np.uint8) |
테스트에 사용한 원본 이미지와 코드입니다.
import cv2 |
4. Closing
Opening과 반대로 Dilation 연산을 먼저 적용한 후, Erosion 연산을 적용합니다.
희색 오브젝트에 있는 작은 검은색 구멍들을 메우는데 사용합니다.
kernel = np.ones((11, 11), np.uint8) |
커널 크기를 조절하면 검은 구멍을 메우는 정도가 달라집니다.
테스트에 사용한 원본 이미지와 코드입니다.
import cv2 |
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
OpenCV Python 강좌 - 마우스 클릭으로 HSV 색공간에서 특정색 추출하기 (37) | 2018.10.23 |
---|---|
OpenCV Python 강좌 - 에지 검출( Edge detection ) (3) | 2018.10.16 |
OpenCV Python 강좌 - Smoothing(Blurring) (2) | 2018.10.11 |
OpenCV Python 강좌 - 영상 이진화(binarization, thresholding) (2) | 2018.10.05 |
OpenCV Python 강좌 - Perspective Transformation (23) | 2018.10.05 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!