作为一个刚开始进行图像处理的菜鸟,在第一次进行实战项目开发的出发点就挫折不断,赶紧记录一下这美好的时刻~
接到任务,识别相对于模板图中发生短路的实际图中缺陷点。
一听到有模板图,马上傻傻的认为直接图片像素计算来做,或者用模板匹配来做应该没什么问题。
开始第一次,直接图片减,发现原图本身与模板图就有很多差异,检测出来全是缺陷~
第二下,开始使用模板匹配,首先利用结构相似度ssim来算,参考:
https://www.pyimagesearch.com/2017/06/19/image-difference-with-opencv-and-python/#comment-429138
https://blog.csdn.net/hyk_1996/article/details/87867285
https://blog.csdn.net/sinat_36438332/article/details/88173349
https://cloud.tencent.com/developer/section/1414961
不行
再用NCC归一化积相关度来计算,参考:
https://blog.csdn.net/cui134/article/details/23924303
https://www.cnblogs.com/yysky/p/10497858.html
https://www.cnblogs.com/x1mercy/p/7865336.html
https://cloud.tencent.com/developer/article/1357066
还考虑了一下形状匹配:https://blog.csdn.net/sillykog/article/details/83116793
最后觉得都不行,毕竟匹配几乎用于定位,确定ROI区域,经过思考,准备明天换个方向:
- 图像配准+匹配
- 边缘梯度变化+信息熵(判断无序的程度,减少漏判)
- 图像配准+匹配+梯度变化
~短短一天收获很多,包括对于opencv的一些操作,对于图像的基础知识,以及编译VS和python的熟练,同时意识到opencv真的效率不够工业级别,准备学习一下holcan。