使用OpenCV洪填充



我只是想使用洪水填充,但它失败了,我从来没有使用过它,所以我想我做错了什么

Mat flooded=new Mat();
Point flood=new Point(1,1);
// floodedmat = Mat.zeros(myMat2.size(), CvType.CV_8UC1);
Imgproc.floodFill(myMat2, flooded, flood, new Scalar(255, 255, 255));
Utils.matToBitmap(flooded, copy);

在洪水填充之后,我打算将其返回为位图以显示它,以便我将看到变化

你应该使用重载的floodFill方法,它接受额外的参数:

Imgproc.floodFill(myMat2, flooded, flood, new Scalar(255, 255, 255), new Rect(), lowerDiff, upperDiff, 4);

新的Rect()对象是一个边界矩形,它将包含你的填充物;lowerDiffupperDiff应该是初始化的标量,与原始像素值有差异(即:如果它是一个颜色值不同的RGB图像,让我们说在你的种子点(泛滥)有一个明亮的黄色像素,它被一个稍微不那么明亮或稍微明亮的黄色像素包围,它将用白色矩形填充它们)。你想用3个值来初始化它们,例如:

Scalar lowerDiff = new Scalar(10, 10, 10);

最后一个整数参数是floodFill应该考虑多少相邻像素,4是默认值,8是另一个选项。(4表示北、东、西、南像素,8表示北、东北、东、东南等像素。像素)。

相关内容

  • 没有找到相关文章

最新更新