Image processing OpenCV-将溢流填充到新垫上

Image processing OpenCV-将溢流填充到新垫上,image-processing,opencv,flood-fill,Image Processing,Opencv,Flood Fill,给定图像上的一个点,我想将所有连接到该点的点填充到新图像上。一种简单的方法是将原始图像填充到一个特殊的魔法颜色值。然后,访问每个像素,并将具有此神奇颜色值的所有像素复制到新图像中。一定有更好的办法 为什么不使用的第二种变体创建遮罩 int泛光填充(InputOutArray图像、InputOutArray掩码、点 种子点,标量newVal,Rect*Rect=0,标量loDiff=Scalar(),标量 upDiff=Scalar(),int标志=4) 原始图像 cv::Mat img=c

给定图像上的一个点,我想将所有连接到该点的点填充到新图像上。一种简单的方法是将原始图像填充到一个特殊的魔法颜色值。然后,访问每个像素,并将具有此神奇颜色值的所有像素复制到新图像中。一定有更好的办法

为什么不使用的第二种变体创建遮罩

int泛光填充(InputOutArray图像、InputOutArray掩码、点 种子点,标量newVal,Rect*Rect=0,标量loDiff=Scalar(),标量 upDiff=Scalar(),int标志=4)


  • 原始图像
cv::Mat img=cv::imread(“squares.png”);

  • 第一变体
cv::泛洪填充(img,cv::Point(150150),cv::Scalar(255.0,255.0,255.0));

这是
img

  • 第二种变体
cv::Mat mask=cv::Mat::zero(img.rows+2,img.cols+2,cv_8U);
cv::泛光填充(img,掩码,cv::Point(150150),255,0,cv::Scalar(),cv::Scalar(),cv::Scalar(),

4+(255)将原始图像复制到另一个图像并处理该图像有什么问题?我需要某种方法将该图像中的所有其他内容设置为黑色。