C++ 闪烁轮廓线
是从摄像机中识别出最大的轮廓并用红线画出来 我发现,当检测到最大轮廓(在我的程序中称为C++ 闪烁轮廓线,c++,image-processing,opencv,video-processing,contour,C++,Image Processing,Opencv,Video Processing,Contour,是从摄像机中识别出最大的轮廓并用红线画出来 我发现,当检测到最大轮廓(在我的程序中称为最大\u轮廓)时,轮廓的轮廓线将闪烁,有时会中断在其周围绘制红线的功能(因为轮廓线不再连接,因此在图像中检测不到更多轮廓) 我的问题是: 发生此问题的原因是什么 如何避免(或我们可以避免)这个问题的发生 有什么改进我的轮廓检测程序的建议吗 提前谢谢 备注:有关代码、图片和更多信息,请单击 findContoursOpenCV的API修改用于查找轮廓的图像 Mat displayContours = Mat::z
最大\u轮廓
)时,轮廓的轮廓线将闪烁,有时会中断在其周围绘制红线的功能(因为轮廓线不再连接,因此在图像中检测不到更多轮廓)
我的问题是:
备注:有关代码、图片和更多信息,请单击
findContours
OpenCV的API修改用于查找轮廓的图像
Mat displayContours = Mat::zeros(image.rows,image.cols,CV_8UC1);
for(int i = 1;i<(int)largest_contours[0].size();i++)
{
line(displayContours,largest_contours[0][i-1],largest_contours[0][i],255,2,8,0);
line(image,largest_contours[0][i-1],largest_contours[0][i],cv::Scalar(0,0,255),2,8,0);
}
Mat displayContours=Mat::zero(image.rows,image.cols,CV_8UC1);
对于(int i=1;即“闪烁”问题很可能是由噪音/灯光引起的,是的,但这也可能表明您没有使用以前的任何其他帧。您可能希望平均帧,然后是使用此方法的典型建议。但是,要提供准确的帮助,您必须包含一些有问题的您自己的短示例视频ms you description.添加了视频。这是您的应用程序运行的视频,没有人需要它。需要的是您的原始帧,请检查VideoWriter
。