1. 모폴로지 변환
영상의 밝은 영역이나 어두운 영역을 축소 또는 확대 하는 기법
◼ 모폴로지 처리
cv2.getStructuringElement(구조 요소의 모양, 사이즈) |
[ 구조 영상의 모양 ] 1. 직사각형(cv2.MORPH_RECT) - 가장 단순한 형태로, 모든 요소가 같은 값을 가지는 정사각형 또는 직사각형 - 행창과 침식 연산에서 동일하게 작동 - 객체 가장자리를 따라 명확한 변화를 줄 때 유용 2. 타원형(cv2.MORPH_ELLIPSE) - 가장자리 부분을 더 부드럽게 처리 - 객체의 둥근 모양을 유지하면서 노이즈를 제거할 때 유용 3. 십자형(cv2.MORPH_CROSS) - 중심을 기준으로 수직 및 수평 방향으로 영향 - 얇은 라인 구조를 강화하거나 제거하는 데 유용 |
◼ 침식(erosion) 연산
cv2.erode(영산, 구조요소, 출력영상, 고정점 위치) |
- 이미지를 깎아 내는 연산 - 객체 크기는 감소하고 배경은 확대 - 작은 크기의 객체(잡음)제거 효과가 있음 - 어두운 부분의 노이즈를 제고하는 효과 |
◼ 팽창(dilation) 연산
cv2.dilate(영상, 구조요소, 출력영상, 고정점 위치) |
- 물체의 주변을 확장하는 연산 - 팽창 연산은 객체 외곽을 확대시키는 연산 - 객체 크기는 증가되고 배경은 감소 - 객체 내부의 홀이 있다면 홀을 채울 수 있음 - 밝은 부분의 노이즈를 제거하는 효과 |
◼ 모폴로지 연산 중 침식과 팽창
import cv2
img = cv2.imread('./circuit.bmp', cv2.IMREAD_GRAYSCALE)
gse = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 3))
dst1 = cv2.erode(img, gse)
dst2 = cv2.dilate(img, None)
cv2.imshow('img' ,img)
cv2.imshow('dst1' ,dst1)
cv2.imshow('dst2' ,dst2)
cv2.waitKey()
|
![]() |
◼ 열림(opening)
- 팽창 연산과 침식 연산의 조합
- 침식 연산을 적용한 다음, 팽창연산을 적용
- 침식 연산으로 인해 밝은 영역이 줄어들고, 어두운 영역이 늘어남
- 객체 크기 감소를 원래대로 복구할 수 있음
- 작은 객체를 제거하고 구멍을 복구 할 수 있음
◼ 닫힘(closing)
- 팽창 연산과 친식 연산의 조합
- 팽창 연산을 적용한 다음, 침식 연산을 적용
- 어두운 영역이 줄어들고 밝은 영역이 늘어남
- 작은 구멍을 메우고 끊어진 객체를 연결하는 데 사용
- 늘어남 영역을 다시 복구하기 위해 침식 연산을 적용하면 밝은 영역이 줄어들고 어두운 영역이 늘어남
◼ 그레디언트(gradient)
- 팽창 연산과 친식 연산의 조합
- 열림 연산이나 닫힘 연산과 달리 입력 이미지에 각각 챙창 연산과 침식 연산을 적용하고 감산을 진행
'AI > 컴퓨터 비전' 카테고리의 다른 글
11. OCR (1) | 2024.07.23 |
---|---|
10. 레이블링 (2) | 2024.07.23 |
08. 필터링, 블러링 (0) | 2024.07.22 |
07. 이미지 유사도, 영상의 변환 (0) | 2024.07.18 |
06. 이진화 (0) | 2024.07.18 |