图像相减(又称为图像差影),是指把同一物体图片在不同时刻拍摄的两幅图像进行减法运算,从而得到差值结果图像。
差值图像显示了图像间的差异信息,本论文基本思想是针对标准模板图像与缺陷图像进行想减运算,从而得到想减结果图像,通过分析相减图像的灰度值,对要测试的图像是否合格做出判断,若判断合格,则系统停止处理,若判断为不合格则对不合格标签进行剔除处理.
算法设计:设模板标准图像灰度像素值为A(x,y),设待检测缺陷图像为B(x,y),两图像做相减运算为C(x,y),他们之间的关系式为:
C(x,y)=|B(x,y)-A(x,y)|图像减法运算结果体现两幅图像的差异,算法容易实现,通过对两幅图像进行相减结果取绝对值,可以清除两幅图像之间共同的背景图案,分割出图像之间的不同之处,最后保留有缺陷的图像.
如果两幅图像相减后C(x,y)越小,则表明图像之间的差异越小,两幅图像之间的相似度就越高,否则,相反.
如图所示,图1-1 为标准模板标签图像,图 1-2 为待检测标签图像.经过如下算法:
BOOL WINAPI TuXJianFa (LPSTR lpYDIB,LPSTR lpB-DIB,LONG lkuan,LONG lgao){LPSTR lpsrc,lpsrcB;LPSTR lpDst;LPSTR lpNewDIB;HLOCAL hNewDIB;long i;long j;unsigned char xiangsu,xiangsuB;LONG mhzj;mhzj=WIDTHBYTES(lkuan*8);hNewDIB=LocalAlloc(LHND,lkuan*lgao);lpNewDIB=(char*)LocalLock(hNewDIB);lpDst=(char*)lpNewDIB;memset(lpDst,(BYTE)255,lkuan*lgao);for(i=0;i<lgao;i++){for(j=0;j<lkuan;j++){lpsrc=(char*)lpYDIB+mhzj*i+j;lpsrcB=(char*)lpBDIB+mhzj*i+j;lpDst=(char*)lpNewDIB+mhzj*i+j;xiangsu=(unsigned char)*lpsrc;xiangsuB=(unsigned char)*lpsrcB;*lpDst=abs(xiangsu-xiangsuB);}}memcpy(lpYDIB,lpNewDIB,lkuan*lgao);LocalUnlock(hNewDIB);LocalFree(hNewDIB);return TRUE;}
使得两幅标签图像的差异如图 1-3 所示:
从图1-3 可以看出:待检测标签图像与标准模板标签图像进行相减后,能够清除图像之间共同的部分,从而使差异部分体现出来.
总结:本文通过对现有的标签进行观察分析,提出了图像相减的软件检测算法,并依据该算法对标签缺陷检测系统进行测试,最终得以实现,该系统能够减轻工人的繁重的劳动,实现标签检测的工作效率.
参考文献: [1] 宋慧欣,解读“新经济时代”中国机器视觉市场[J],自动化博览,2010.4:69~69 [2] 历小飞,基于机器视觉的汽车零件缺陷检测技术研究,武汉理工大学[D],武汉理工大学 2012:11~15. [3] 何斌,马天宇,王运坚,Visual C++ 数字图像处理[D] 2002:473~477.