[ch07] 이진 영상 처리 - 모폴로지 (2) : 열기와 닫기

빨주노·2021년 8월 27일
0

이진 영상의 열기(opening) 연산

이진 영상의 닫기(closing) 연산

열기와 닫기 연산 효과 (3x3 구조 사용)

범용 모폴로지 연산 함수

cv2.morphologyEx(src, op, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None) -> dst
  • src : 입력 영상
  • op : 모폴로지 연산 플래그
  • kernel : 커널
  • dst : 출력 영상

열기 연산을 이용한 잡음 제거 예제

src = cv2.imread('rice.png', cv2.IMREAD_GRAYSCALE)

# 지역 이진화 수행
dst1 = np.zeros(src.shape, np.uint8)

bw = src.shape[1] // 4
bh = src.shape[0] // 4

for y in range(4):
    for x in range(4):
        src_ = src[y*bh:(y+1)*bh, x*bw:(x+1)*bw]
        dst- = dst1[y*bh:(y+1)*bh, x*bw:(x+1)*bw]
        cv2.threshold(src_, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU, dst_)

cnt1, _ = cv2.connectedComponents(dst1)

dst2 = cv2.morphologyEx(dst1, cv2.MORPH_OPEN, None)

cnt2, _ = cv2.connectedComponents(dst2)

dst2에서 하단 부분까지 깔끔하게 쌀알이 검출되는 모습을 관찰할 수 있다.

  • cnt1 : 113, cnt2 : 99
profile
딥 하게 딥러닝 하는중

0개의 댓글