저는 손으로 그린 스케치에서 획을 찾는 방법을 찾고 있습니다. 내 실제 접근 방식은 OpenCV에서 adaptive thresholding 및 findContours를 적용하는 것입니다. 이 문제는 findContours가 나에게 오른손 쪽과 왼손쪽에 하나의 단일 획의 위쪽과 아래쪽 윤곽을 준다는 것입니다. 손으로 그린 획 중 하나의 윤곽 표현을 유도하는 방법이 있습니까?스케치에서 줄 감지
편집 사전에
감사 : 여기
코드와 지금까지 달성 한 무엇의 이미지입니다 :
Imgproc.GaussianBlur(image, image, new Size(5, 5), 3);
Mat thresholded = Mat.zeros(image.size(), CvType.CV_8U);
: 나는 초기 이미지 적응 형 임계 값을 적용
우선
그런 다음 임계 값 이미지에 findCountours를 적용하고 각 윤곽에 approxPolyDB를 추가로 적용했습니다.
Imgproc.findContours(thresholded, contours, hierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE, new Point(0,0));
List<MatOfPoint> refinedContours = new ArrayList<MatOfPoint>();
for (int i = 0; i < contours.size(); i++) {
MatOfPoint2f approx = new MatOfPoint2f();
Imgproc.approxPolyDP(mop2mop2f(contours.get(i)), approx, 6, true);
}
이후 각도가 고정 된 임계 값보다 큰 지점에서 각 윤곽을 분할합니다. 마지막 단계로서 주어진 임계 값보다 길지 않은 모든 윤곽을 삭제했습니다.
In the picture you can see the thresholded image as the final contours
내 목표는 스케치 된 이미지에서 한 스트로크에 대해 하나의 윤곽이하는 방식으로 병렬 윤곽을 방지하는 것입니다.
감사합니다.
당신은 당신의 코드와 샘플 이미지를 게시 할 수 있을까요? – Berriel