如何绘制轮廓并在android中的图像上创建一个边界矩形?
到目前为止,我有什么,
Mat imageMat = new Mat();
Utils.bitmapToMat(photo, imageMat);
Imgproc.cvtColor(imageMat, imageMat, Imgproc.COLOR_BGR2GRAY);
Imgproc.adaptiveThreshold(imageMat, imageMat, 255,
Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 7, 7);
List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
Mat hierarchy = new Mat();
Imgproc.findContours(imageMat, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);
Bitmap resultBitmap = Bitmap.createBitmap(imageMat.cols(), imageMat.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(imageMat, resultBitmap);
((ImageView) findViewById(R.id.imageView)).setImageBitmap(resultBitmap);
答案 0 :(得分:0)
请查看DrawContours
方法的文档here,然后您可以关注this example。
对于边界矩形,请查看上面链接的相同文档,并且(以下this example)有
List<Rect> boundingRects = new List<Rect>();
for (MatOfPoint points : contours){
boundingRects.append(Imgproc.boundingRect(points));
}
虽然我没有测试过代码(我现在不能测试)但这应该可以解决你的问题(我认为这些例子是合理的,而且它们也是类似问题的确认解决方案)。
让我知道!