2014-05-10 4 views
0

JavaCV를 배우고 색상 기반으로 이미지의 일부를 추출하고 싶습니다.JavaCV를 사용하여 이미지에서 ROI 제거

신원을 밝히기 위해 나는 색으로 추출해야하는 영역의 윤곽을 잡았습니다. 어쨌든 색 윤곽을 기반으로 ROI를 추출 할 수 있습니까? 어떤 도움을 주셔서 감사합니다. 여기

은 매우 간단하다 Sample Image

+0

궁금한 점이 있다면, 왜 javacv가 아닌 opencv의 내장 자바 래퍼를 사용하고 있습니까? – berak

+0

그럼 구현이 더 걱정 스럽습니다. javacv 또는 opencv의 java wappers가 중요하지 않습니다. – Wanderer

답변

0

입니다. 귀하의 그림은 네 모서리가 있으므로 따라서 다음 단계를 따라야합니다.

1. 이미지의 방향을 확인하고 MatofPoint2f에 특정 순서로 점을 저장하십시오. (시계 방향 또는 반 시계 방향 -이 경우 Math.atan2 (p1 (y) -centerpoint (y), p1 (x) -centerpoint (x))를 사용할 수 있으며 방정식의 결과에 따라 점을 정렬 할 수 있습니다. 모든 xcoord 및 y 좌표 또는 선호하는 방법을 avg로 찾아서 중심점을 찾으십시오.)

2.Create 결과 이미지 크기의 코너 좌표는.에서 자른 이미지를 원하는 Imgproc.getPerspectiveTransform 3.use

() 자르기를 수행하기를 포함하는 MatofPoint2f.

4. 마지막으로 Imgproc.warpPerspective()를 사용하여 원하는 출력을 얻습니다.

ROI 테두리를 만들려면 필요한 특정 스펙트럼 부분 만 추출하여 특정 범위를 사용하여 이미지를 임계 값으로 설정하는 것이 가장 좋습니다.

+0

몇 가지 예제 코드를 표시 할 수 있습니까? 나는 opencv 초보자입니다. – Wanderer

+0

코드에서 이미지를 변환하거나 윤곽을 식별 하시겠습니까? 윤곽선을 확인하는 것은 자신을 알아야하는 것입니다. 회색조로 변환하고 선택하려는 픽셀의 값을 확인하고 나머지 픽셀을 검정색 (0)으로 변경하십시오. 변환 함수는이 링크에 있습니다. http://stackoverflow.com/questions/21571761/javacv-perspective-correction/23268237#23268237 –

관련 문제