Keep Going

Keep Going

[OpenCV] 캐스케이드 분류기, 얼굴 검출

이번 글에서는 얼굴 검출에 대해 알아보겠습니다. OpenCV에서는 얼굴 검출에 대한 몇가지 방법을 제공하며, 이번 글에서는 캐스케이드 분류기(cascade classifier)에 대해 알아보겠습니다. 우선, 캐스케이드 분류기에 대해 알아 보기전에 비올라-존스 알고리즘에 대해 알아보겠습니다. 비올라-존스 알고리즘 비올라-존스 알고리즘은 얼굴 검출에 사용되는 …

[OpenCV] 템플릿 매칭 – matchTemplate

이번 글에서는 템플릿 매칭(Template Maching)에 대해 알아보겠습니다. 템플릿 매칭이란 어떠한 영상에서 템플릿 영상과 일치하는 영상을 찾는 것을 말합니다. 템플릿 영상은 찾을 대상이 되는 작은 크기의 영상을 의미합니다. 예를들어 아래와 같이 레나 영상에서 레나 얼굴을 찾고 싶으면, 레나의 …

[OpenCV] 2. 외곽선 응용 – approxPolyDP, 외곽선 또는 곡선 근사화

이번 글에서는 외곽선 검출 응용인 외곽선 근사화에 대해 알아보겠습니다. 더글라스 포이커(Douglas-Peucker) 알고리즘 우선 외곽선 또는 곡선을 근사화하는 더글라스-포이커 알고리즘에 대해 알아보겠습니다. 더글라스-포이커 알고리즘은 아래 순서를 따릅니다. 위 이미지는 더글라스-포이커 알고리즘을 설명하는 샘플 움짤입니다. approxPolyDP OpenCV에서는 외곽선 또는 …

[OpenCV] 1. 외곽선 응용

이전 글에서 findContours 함수를 이용하여 외곽선을 검출하였습니다. 이렇게 검출한 외곽선 정보에서 객체의 위치, 크기 등의 정보를 추출하는 방법에 대해서 알아보겠습니다. 객체를 감싸는 사각형, 원 구하는 함수 함수부터 빠르게 알아보겠습니다. 외곽선 정보에서 바운딩 박스를 구하기 위해서 boundingRect  함수를 사용합니다. …

[OpenCV] 외곽선 검출 – findContours

이번 글에서는 객체의 외곽선(contours)을 검출하는 방법에 대해 알아보겠습니다. 외곽선 검출은 레이블링과 더불어 영상에서 객체의 정보를 검출하는 방법 중 하나입니다. 개념 영상에서 객체의 외곽을 검출하는 방법에 대해 알아보겠습니다.외곽선 검출은 이진화된 영상에서 검출이 이루어지며 배경 영역과 닿아 있는 픽셀을 …

[OpenCV] 라벨링 – 2. 응용(connectedComponentsWithStats )

이전 글에서 라벨링에 대해 기초적인 내용을 알아보았습니다. 이번 글에서는 객체의 정보를 알아내는 방법에 대해 알아보겠습니다. 기존 문제점 라벨링을 수행하여 객체의 개수를 파악하고 행렬에 객체의 번호를 부여하더라도 가공된 정보는 아닙니다.객체의 영역이나 무게중심 좌표 등, 개발자가 행렬의 …

[OpenCV] 라벨링(labeling) – 1. 기본

이전 글까지 영상에 대해 알아보고, 영상의 배경과 객체를 이진화를 통해 구별하였습니다. 이번 글에서는 이렇게 구별된 객체들을 각각의 객체로 구별 및 분석하는 라벨링 기법(또는 레이블링이라고도 함)에 대해 알아보겠습니다. 이해 영상에서 라벨링은 보통 이진화 영상에서 수행됩니다. 라벨링은 이진화된 영상의 검은색 픽셀(0)을 배경으로, 흰색 …

[OpenCV] 모폴로지 – 열기(opening), 닫기(closing)

영상의 침식과 팽창에 대해 잘 모르신다면 여기를 참고하는 것이 좋습니다. 침식과 팽창 연산의 단점 이전 글에서 영상에서 침식(erode)와 팽창(dilate) 연산하여 잡음을 제거하는 작업을 해보았습니다. 이러한 연산의 단점은 기존 영상의 객체 영역을 변형시킨다는 것입니다. 위 예시에서만 …

[OpenCV] 모폴로지 – 침식(erode), 팽창(dilate)

이번 글에서는 모폴로지의 기본적인 설명과 침식과 팽창에 대해 알아보겠습니다. 우선 모폴로지(morphology)는 형태학을 의미하며, 생물의 구조, 외형 등등 형태 또는 모양에 관한 학문을 의미합니다.영상처리에서 모폴로지는, 영상에서 객체의 형태 및 구조에 대해 분석하고 처리하는 기법을 의미합니다.모폴로지는 주로 객체를 단순화하거나 잡음 …

[OpenCV] 영상의 이진화 – adaptiveThreshold

이전 글에서는 영상의 이진화에 대해서 알아 보았고 threshold 에 대해서도 알아보았습니다. 이제 threshold 함수로 임계값을 설정하고, 임계값보다 크면 255, 작으면 0으로 만드는 이진화 작업을 할 수 있습니다.하지만 아래와 수도쿠 이미지에서는 한곳은 너무 어둡고,  한곳은 너무 밝아서 threshold …