Ниже приведено изображение синего пятна, обнаруженного в приложении Android с помощью OpenCV4Android
. Я использовал Core.inRange()
и Imgproc.findContours()
для поиска контуров и Imgproc.drawContours()
, чтобы нарисовать их:
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);
}
Контур (светло-зеленая граница) находится за пределами обнаруженной формы.
Итак, как вы можете видеть, он также включает в себя некоторую белую область вокруг обнаруженного синего пятна. Я хочу, чтобы граница контура находилась внутри краев синего пятна/формы.
Как я могу это сделать?