[안드로이드로 배우는 OpenCV] 그랩컷(GrabCut)

그랩컷(GrabCut) 그랩컷 알고리즘은 영국 캠브릿지 마이크로소프트 연구소의 Carsten Rother, Vladimir Kolmogorov 및 Andrew Blake가 만들었다. 그들의 논문인  “GrabCut”: interactive foreground extraction using iterated graph cuts 에서 확인할 수 있다. 이 알고리즘은 최소한의 상호 작용으로 전경(객체) 추출을 돕는다. 처음에 사용자가 전경 더보기…

[안드로이드로 배우는 OpenCV] 볼록 결함 찾기 (convexity defects)

Prerequisite : 윤곽선 길이 구하기, Convex hull 볼록 결함 찾기 지난 시간에 Convex hull에 대해서 알아보았다. 이 포스팅에서는 볼록 결함(convexity defect)를 찾는 방법에 대해서 알아본다. 볼록 결함이란 convex hull로 부터 오목하게 들어간 윤곽선 중 가장 멀리 떨어진 부분을 찾는 방법이라고 더보기…

[안드로이드로 배우는 OpenCV] Convex hull 구하기

Prerequisite : 윤곽선 길이 구하기 Convex hull Convex hull이란 2차원 평면상에 여러개의 점이 있을 때, 점들 중 일부를 이용하여 Convex(볼록)한 다각형이면서, 다각형 내부에 모든 점을 포함시키는 것을 의미한다. 아래의 이미지를 참조하여 주어진 정점에 대한 Convex hull 알고리즘의 결과를 확인하자. 현재 더보기…

[안드로이드로 배우는 OpenCV] Convex 여부 검사하기

Prerequisite : 윤곽선 길이 구하기 Convex 검사 Convex 검사는 주어진 윤곽선이 볼록한지 여부를 확인하는 것을 말한다. OpenCV에서는 isContourConvex()라는 함수를 통해 Convex 검사를 할 수 있다. Imgproc.isContourConvex(contour) contour: 윤곽선 좌표 정보.반환값: convex 여부 convex를 검사하는 예제를 살펴보자. 볼록한 도형의 경우 Convex라고 더보기…

[안드로이드로 배우는 OpenCV] 주어진 점에 적합한 직선 구하기 (fitLine)

Prerequisite : 윤곽선 길이 구하기 fitLine 함수 OpenCV에서는 fitLine이라는 함수를 제공하는데, 이는 주어진 점들을 적당히 감싸는 직선 정보를 구할 수 있다. fitLine 함수는 ∑iρ(ri)를 최소화하여 2D 또는 3D 점들의 집합에 선을 피팅하는데, 여기서 ri는 i번째 점과 선 사이의 거리이고, ρ(r)은 거리를 구하는 더보기…

[안드로이드로 배우는 OpenCV] 주어진 점에 적합한 타원 구하기 (fitEllipse)

Prerequisite : 윤곽선 길이 구하기 fitEllipse 함수 OpenCV에서는 fitEllipse라는 함수를 제공하는데, 이는 주어진 점들을 적당히 감싸는 타원 정보를 구할 수 있다. Imgproc.fitEllipse(contour) contour: 윤곽선 좌표반환값: RotatedRect 타입의 타원 정보 fitEllipse와 함께 이미지 내 도형을 타원으로 적당히 감싸는 예제를 살펴보자. 예제코드: 더보기…

[안드로이드로 배우는 OpenCV] 윤곽선을 근사화하기

Prerequisite : 윤곽선 길이 구하기 윤곽선 근사화 윤곽선 근사화란 검출한 윤곽선 정보를 분석하여 정점(vertex) 수가 적은 윤곽선 또는 다각형으로 표현할 수 있게 만드는 방법을 의미 한다. 이때 Douglas-Peucker 알고리즘을 사용한다. OpenCV에서 윤곽선 근사화를 위해 approxPolyDP라는 함수를 제공하고 있다. approxPolyDP(curve, approxCurve, 더보기…

[안드로이드로 배우는 OpenCV] 바운딩 트라이앵글 구하기

Prerequisite : 윤곽선 길이 구하기 바운딩 트라이앵글 바운딩 트라이앵글(삼각형)이란 윤곽선을 외접하여 둘러싸는 가장 작은 삼각형을 의미한다. OpenCV에서는 minEnclosingTriangle라는 함수를 통해 바운딩 트라이앵글을 구할 수 있다. Imgproc.minEnclosingTriangle(contour, triangle) contour: 윤곽선 좌표triangle: 함수 호출 후 참조할 삼각형 정보 (Mat타입) minEnclosingTriangle 함수를 이용하여 이미지 더보기…

[안드로이드로 배우는 OpenCV] 최소 크기의 회전된 바운딩 박스 구하기

Prerequisite : 윤곽선 길이 구하기, 바운딩 박스 최소 크기의 회전된 바운딩 박스 바운딩 박스를 회전시켜 구할 수 있다면, 더 작은 사각형으로 도형을 감쌀수 있다. OpenCV에서는 회전된 바운딩 박스를 구하는데 minAreaRect() 함수를 제공한다. Imgproc.minAreaRect(contour) contour: 윤곽선 좌표반환값: RotatedRect 타입의 회전된 사각형 더보기…