模板图片:
缺陷图片1:
缺陷图片2:
以上几幅图片是实际项目中处理之后的图片。图片1是标准物体处理之后的模板图形,图片2、3是有缺陷的物体图片处理之后的效果。想要检测内轮廓是否有缺陷,用opencv里面的面积计算函数计算各个内轮廓的面积,然后分别用图片2、3中的内轮廓面积去和标准图片的内轮廓面积相比,设定比值的范围。但是面积参数很不敏感,需要设定很高的阈值才能检测出缺陷,但是阈值高了又会存在另外一个问题,就是本身完整的各个物体之间也有一定的差异,阈值高了,会把好的,容许在差异之内的物体也识别成错的了。所以使用面积匹配,需要是在面积缺陷很大的情况才能有较好的结果,在面积缺陷很少的情况下,算法的精度不够。
以上是个人在实际项目中测试的结论,敬请大家批评指正。
面积的方法不能识别很细微的缺陷,要换新的方法了,思考中。。。。