我正在尋找一種方法在手繪草圖中查找筆畫。我的實際做法是應用自適應閾值並從OpenCV中找到Contours。與此相關的問題是,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