Python
[OpenCV with Python] 영상 분할과 객체 검출 : 그랩컷 - cv2.grabCut
그랩컷(GrabCut)이란? 그래프 컷(graph cut) 기반 영역 분할 알고리즘 영상의 픽셀을 그래프 정점으로 간주하고, 픽셀들을 두 개의 그룹(객체, 배경)으로 나누는 최적의 컷(Max Flow Minimum Cut)을 찾는 방식 이 알고리즘으로 객체와 배경을 구분할 수 있다. 객체를 가운데, 배경은 바깥 부분으로 간주한다. 그랩컷 영상 분할 동작 방식 객체 위치를 러프하게 사각형 형태로 주는 방식 객체 부분과 배경 부분을 마우스로 지정해주고 정보를 제공하고 다시 업데이트 하는 방식 ✔︎ 그랩컷 함수 - cv2.grabCut mask, bgdModel, fgdModel = cv2.grabCut(img, mask, rect, bgdModel, fgdModel, iterCount, mode=None) ..
[OpenCV with Python] 이진 영상 처리 : 다양한 외곽선 함수
다양한 외곽선 함수 OpenCV: Contour Features Prev Tutorial: Contours : Getting Started Next Tutorial: Contour Properties Goal In this article, we will learn To find the different features of contours, like area, perimeter, centroid, bounding box etc You will see plenty of functions related to contour docs.opencv.org 외곽선 길이 구하기 - cv2.arclength retval = cv2.arcLength(curve, closed) curve : 외곽선 좌표. numpy.nd..
[OpenCV with Python] 이진 영상 처리 : 모폴로지(Morphology) - 열기와 닫기
이진 영상의 열기(opening) 연산 이진 연산의 열기 연산은 이진 영상에 침식을 적용하고 팽창을 적용하는 기법이다. 열기 연산을 적용함으로써 작은 돌기, 작은 객체가 사라지고 얇은 연결선이 끊어진다. 열기 연산은 노이즈를 제거하는 용도로 많이 이용한다. 이진 영상의 닫기(closing) 연산 닫기 연산은 팽창을 적용하고 침식을 적용하는 기법이다. 작은 홈, 작은 홀들이 사라지고, 얇은 연결선이 두꺼워 진다. ✔︎ 범용 모폴로지 연산 함수 - cv2.morphologyEx 범용 모폴로지 연산 함수는 침식과 팽창, 열기와 닫기 그 외에도 모폴로지 그래디언트를 지원한다. dst = cv2.morphologyEx(src, op, kernel, dst=None, anchor=None, iterations=No..
[OpenCV with Python] 이진 영상 처리 : 모폴로지(Morphology) - 침식과 팽창
모폴로지 Morphology 모폴로지는 형태학이라는 의미를 갖고 있다. 영상을 형태학적인 측면으로 접근하는 것이 모폴로지이다. 모양에 대한 정보에 더 집중한다. 다양한 영상 처리 시스템에서 전처리(pre-processing) 또는 후처리(post-processing) 형태로 널리 이용된다. 구조 요소(structuring element)는 모폴로지 연산의 결과를 결정하는 커널, 마스크, 윈도우 입니다. 모폴로지는 필터링과 비슷한 연산을 내부에서 진행한다. 모폴로지에서는 필터가 structuring element 라고 한다. 다양한 형태가 있지만 주로 정방형 행렬(3X3)을 이용한다. 필터와 마찬가지로 중앙에 고정점(Anchor)이 있다. 이진 영상의 침식(erosion) 연산 침식 연산은 객체 외각을 깍..