OpenCV
[OpenCV with Python] 영상 분할과 객체 검출 : 모멘트 기반 객체 검출
모멘트(Moments)란? 영상의 형태를 표현하는 일련의 실수값 기본적으로 회전, 크기 변환, 대칭, 이동에 강력하며 객체에 변형이 생긴 경우에는 성능이 떨어진다. 특정 함수 집합과의 상관관계(correlation) 형태로 계산 ex) Geometric moments : - f(x,y) : 입력영상 - $x^{p}, y^{q}$ : 정의되어 있는 다항식 함수 ➜ 이 두개를 correlation 계산을 해서 실수값 m을 계산 x와 y 함수를 어떻게 정의하냐에 따라 모멘트를 여러가지 형태로 정의할 수 있다. OpenCV에서는 Geomertic moments, Central moments, Normalized central moments 3가지 기능을 제공한다. Geometric moments 는 위의 식 대..
[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] 이진 영상 처리 : 외곽선 검출
외곽선 검출 외곽선 검출이란 객체의 외곽선 좌표를 모두 추출하는 작업이다. 바깥선 외곽선뿐 아니라 옵션을 적용함으로써 안쪽 외곽선도 검출할 수 있다. 외곽선 간의 상관관계도 알 수 있으며, 외곽선의 계층 구조도 표현할 수 있다. 외곽선 객체 하나의 표현 방법 numpy.ndarray shape=(K, 1, 2) (K는 외곽선 좌표 개수) dtype=numpy.int32 여러 외곽선 표현 방법 "객체 하나의 외곽선(numpy.ndarray)"을 원소로 갖는 리스트 len(리스트) = 전체 외곽선 개수(N) ✔︎ 외곽선 검출 함수 - cv2.findContours contours, hierarchy = cv2.findContours( image, mode, method, contours=None, hiera..