图像目标尺寸检测类似于计算从我们的相机到一个物体的距离——在这两种情况下,我们都需要事先定义一个比率来测量每个给定度量单位的像素数(pixels_per_metric)。在这里所说的这个被称为“pixels_per_metric”的比率指标,我在接下来的部分中对其更正式的定义。
pixels_per_metric
为了确定图像中物体的大小,我们首先需要使用一个参照物作为“校准”点。我们的参照物应该有两个重要的属性:
我们应该知道这个物体的真实尺寸(在宽度或高度上的毫米或英寸等值的大小)。
我们应该能够轻松地在图片中找到这个参照物,要么基于参照物的位置(如,参照物可以是一副图像中左上角的物体)或基于参照物的外表(例如参照物可以是图片中具有最独特的颜色或独一无二的形状,不同于所有其他的物体)。
在任何一种情况下,我们的参考应该以某种方式唯一可识别。
在这个例子中,我们将使用美分硬币作为我们的参照物,并且在所有示例中,确保它始终是我们图像中最左边的对象。
图1:我们将使用美分硬币作为参照物,并确保它始终处于图像最左侧位置,这使得我们可以通过对它们位置的轮廓大小进行排序,进一步来提取信息。
通过保证美分硬币是最左边的物体,我们可以从左到右对我们的物体等高线区域进行排列,抓住这个硬币(它将始终对应于排序列表中的第一个等高线区域)。并使用它来定义我们的pixels_per_metric比率,我们将其定义为:
pixels_per_metric =物体像素宽 / 物体真实宽
美分硬币的真实宽度是0.955英寸。现在,假设我们图像中硬币的像素宽为150像素(基于它的相关边界框)。那么这种情况下pixels_per_m
可以先提取轮廓cvFindContours,得到轮廓外接矩形CvRect r = ((CvContour*)cont)->rect,
矩形长宽就是工件的长宽r.width和r.height
可以用形态学 *** 作来去噪
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)