Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 图像大小对EmguCV形状检测的影响_Image Processing_Emgucv - Fatal编程技术网

Image processing 图像大小对EmguCV形状检测的影响

Image processing 图像大小对EmguCV形状检测的影响,image-processing,emgucv,Image Processing,Emgucv,我正在使用Emgu形状检测示例应用程序检测给定图像上的矩形。即使纵横比保持不变,调整大小的图像的尺寸似乎会影响检测到的形状数量。我的意思是: 为什么会这样?如何确定最佳值 谢谢我回复了你在EMGU上的帖子,但我想你还没有回复,但就是这个。形状检测基于阈值保持不可能匹配的原理,这防止了大量错误分类。许多图像处理算法都是如此。基本上没有完美的设置,设计师必须选择最合适的设置以产生最理想的结果。也就是说,匹配大多数对象,但不说存在比实际更多的对象 您需要单独调整每个变量,以查看得到的结果。从边缘检

我正在使用Emgu形状检测示例应用程序检测给定图像上的矩形。即使纵横比保持不变,调整大小的图像的尺寸似乎会影响检测到的形状数量。我的意思是:

为什么会这样?如何确定最佳值


谢谢

我回复了你在EMGU上的帖子,但我想你还没有回复,但就是这个。形状检测基于阈值保持不可能匹配的原理,这防止了大量错误分类。许多图像处理算法都是如此。基本上没有完美的设置,设计师必须选择最合适的设置以产生最理想的结果。也就是说,匹配大多数对象,但不说存在比实际更多的对象

您需要单独调整每个变量,以查看得到的结果。从边缘检测开始

Image<Gray, Byte> cannyEdges = gray.Canny(cannyThreshold, cannyThresholdLinking);
        LineSegment2D[] lines = cannyEdges.HoughLinesBinary(
            1, //Distance resolution in pixel-related units
            Math.PI / 45.0, //Angle resolution measured in radians.
            20, //threshold
            30, //min Line width
            10 //gap between lines
            )[0]; //Get the lines from the first channel
使用同样的方法,一次调整一个值,观察输出,希望您能找到所需的设置。千万不要两脚都跳进去,改变所有的值,因为你永远不知道你的脚是否能提高准确性。最后,如果所有其他方法都失败,请查看检查矩形的Hough结果的部分

                      if (angle < 80 || angle > 100)
                       {
                          isRectangle = false;
                          break;
                       }
if(角度<80 | |角度>100)
{
isRectangle=false;
打破
}
由于hough应该为您完成所有工作,所以需要更改的变量更少。但在这里一切都可以解决

很抱歉,没有直截了当的答案,但我希望你坚持下去,解决问题。否则每次都可以调整图像的大小

干杯


克里斯

谢谢。。。至少这代表了我可以走的道路。我同意大多数图像检测算法需要某种调整;然而,我从来没有遇到过一个依赖于图像大小而不是纵横比的图像。无论如何,边缘检测似乎不会影响结果(至少对于该图像)。检查其他参数后将更新。在这种情况下,您实际上增加了要查找的对象的大小。很少有算法实际上取决于图像大小或比率,但实际上取决于内部对象的大小。以您的示例为例,未检测到的四边形是一个大致为27360像素的矩形(165,97240114)。现在,在第二幅图像中,相同的四边形是矩形(214129310146),面积增加了45'260像素。这是x1.65的增加,现在我相信你可以看到为什么会检测到较大的一个。更改Hough线代码应该可以解决您的问题。如果不是,我会看一看,很好。在示例应用程序中,Hough线不用于形状检测。。。轮廓是。如果pts的数量是4=>rectangle等,另外这是我的问题,那么角度限制了检测到的矩形的数量。任何超过10度的倾斜(即使所有线条处于相同角度),形状将被丢弃。我现在可以摆弄这个了:)。然而,还有另一件邪恶的事情正在发生。。。形状被检测了两次:/You's right图像大小/比率通常与对象大小无关。但是,在此示例中,调整大小会产生关闭检测到的边中的间隙的副作用。这确实是我的另一张测试图像中的情况,与较大的图像相比,较小的图像中检测到更多的矩形。