형태학적 작업은 픽셀의 구조와 배열을 기반으로 이미지를 수정합니다. 이웃 픽셀의 배열에 따라 특징을 변경하기 위해 입력 이미지에 커널을 적용합니다. 침식 및 팽창과 같은 형태학적 연산은 특히 바이너리 또는 회색조 이미지의 이미지 처리 기술입니다. 이는 모양을 분석하여 노이즈를 제거하고 객체 경계를 개선하는 데 도움이 됩니다.
부식
이미지 처리에서 침식은 개체 가장자리의 픽셀을 제거하여 효과적으로 개체를 더 작게 만들고 작은 백색 잡음을 제거하여 이미지에서 개체의 경계를 축소하고 얇아지게 하는 형태학적 작업입니다.
목적
- 전경 개체(일반적으로 흰색 픽셀)의 경계를 축소하거나 침식합니다.
- 미세한 백색소음을 제거하고, 닿는 물체를 분리해 줍니다.
작동 방식
- 커널(보통 3×3 5×5 또는 7×7 행렬)이 이미지를 가로질러 미끄러집니다.
- 커널 아래의 모든 픽셀이 흰색인 경우에만 픽셀이 흰색으로 유지됩니다(1). 그렇지 않으면 검정색(0)이 됩니다.
- 이 프로세스는 개체 크기를 줄이고 가장자리를 침식합니다.
팽창
확장은 객체 가장자리에 픽셀을 추가하여 객체를 더 크게 보이게 하고 작은 틈이나 구멍을 채워 이미지에서 객체의 경계를 확장하는 형태학적 작업입니다.
123movies와 유사한 영화 웹사이트
목적:
- 전경 개체의 경계를 확장합니다.
- 기능을 강조하거나 확대하고 작은 간격을 채웁니다.
작동 방식:
- 커널은 이미지 위에서 유사하게 컨볼루션됩니다.
- 다음과 같은 경우 픽셀이 흰색(1)으로 설정됩니다. 적어도 하나 커널 아래의 해당 픽셀은 흰색입니다.
- 결과적으로 작은 구멍이 합쳐지거나 깨진 부분이 합쳐지면서 흰색 영역이 커집니다.
침식과 팽창의 구현
Python에서 OpenCV를 사용하여 Erosion 및 Dilation을 구현해 보겠습니다.
1단계: 라이브러리 가져오기
필요한 라이브러리를 가져옵니다
- 이력서2 : 이미지 처리를 위한 OpenCV 라이브러리입니다.
- 멍청하다 : 수치 연산 및 커널 생성용.
- matplotlib.pyplot : 노트북에 이미지를 표시합니다.
2단계: 입력 이미지 로드 및 구조 요소 정의(커널)
커널은 작업의 이웃을 정의합니다. 일반적인 선택은 직사각형이나 디스크입니다.
Python사용된 이미지는 다음에서 다운로드할 수 있습니다. 여기 .
img = cv2.imread('input.webp' 0) plt.imshow(img cmap='gray') plt.title('Original Image') plt.axis('off') plt.show() kernel = np.ones((5 5) np.uint8)
산출:
원래의3단계: 침식 적용
침식은 이미지에서 커널을 밀어서 작동합니다. 커널 아래의 모든 픽셀이 흰색인 경우에만 픽셀이 흰색(255)으로 유지되고 그렇지 않으면 검정색(0)이 됩니다. 이렇게 하면 객체 경계가 줄어들고 작은 백색 잡음이 제거됩니다.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
산출:
침식 후4단계: 확장 적용
팽창은 이미지 전체에서 커널을 슬라이드하며 커널 아래의 픽셀 중 하나 이상이 흰색이면 해당 픽셀이 흰색이 됩니다. 이렇게 하면 흰색 영역이나 물체가 두꺼워지고 작은 구멍이 채워집니다.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
산출:
확장 후응용
부식
- 이미지에서 분리된 백색 잡음을 제거합니다.
- 결합되거나 접촉된 개체를 분리합니다.
- 객체 크기를 줄여 객체 경계를 찾습니다.
팽창
- 물체의 작은 구멍이나 틈을 메웁니다.
- 동일한 물체의 부서지거나 분리된 부분을 결합합니다.
- 침식 후('열기' 작업의 일부로) 노이즈를 제거한 상태로 개체 크기를 복원하는 데 사용됩니다.
침식과 팽창은 이미지 내에서 모양을 깔끔하게 다듬고 조작할 수 있는 이미지 처리의 기본적인 형태학적 작업입니다. 간단한 구조화 요소를 사용함으로써 이러한 기술은 노이즈를 분리하거나 개체를 연결하고 이미지 기능을 향상시키는 데 도움이 되며 OpenCV 및 Python을 사용하는 컴퓨터 비전 작업에서 효과적인 전처리 및 분석을 위한 필수 도구가 됩니다.
퀴즈 만들기