Es folgt ein Bild eines blauen Blobs, der in einer Android-App mit OpenCV4Android
erkannt wurde. Ich verwenden Core.inRange()
Imgproc.findContours()
und Methoden, um die Konturen zu finden, und Imgproc.drawContours()
sie zeichnen:Mit OpenCV, wie man Konturen innerhalb der Kanten der erkannten Form/Blob zeichnen?
Mat mask = new Mat();
Core.inRange(rgbaMat, lowerThreshold, upperThreshold, mask);
...
contours = new ArrayList<>();
Imgproc.findContours(dilatedMat, contours, new Mat(), Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);
...
for (int contourIdx=0; contourIdx < contours.size(); contourIdx++) {
Imgproc.drawContours (rgbaMat, contours, contourIdx, new Scalar(0, 255, 0), 1);
}
die Kontur (hellgrün Grenze) außerhalb der erfaßten Form.
So, wie Sie sehen können, enthält es auch einige weiße Fläche um den erkannten blauen Fleck. Ich möchte die Konturgrenze innerhalb der Ränder des blauen Blobs/der Form haben.
Wie kann ich das tun?