我只是想使用泛洪填充物,但它失败了,我从来没有用过它,所以我想我做错了什么。
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);在泛洪填充之后,我打算将它返回到位图以显示它,这样我就可以看到变化。
发布于 2017-07-28 07:16:20
您应该使用重载的floodFill方法,该方法接受其他参数:
Imgproc.floodFill(myMat2, flooded, flood, new Scalar(255, 255, 255), new Rect(), lowerDiff, upperDiff, 4);新的Rect()对象是一个边界矩形,它将包含你的泛洪填充;lowerDiff和upperDiff应该用一个与你的原始像素值不同的值来初始化标量(例如:如果它是一个色值不同的RGB图像,假设在你的种子点(泛洪)有一个明亮的黄色像素,它被一个稍微亮一点或稍微亮一点的黄色像素包围,它将用白色矩形填充它们)。你想用3个值来初始化它们,即:
Scalar lowerDiff = new Scalar(10, 10, 10);最后一个整数参数是floodFill实际上应该考虑多少相邻像素,4是默认值,8是另一个选项。(4将采用北部、东部、西部和南部像素,而8将采用北部、东北部、东部、东南部等。像素)。
https://stackoverflow.com/questions/30696914
复制相似问题