图像比对算法

下面这些观点是从论坛中总结过来的,便于以后参考:

 

xiuxianshen:遍历比较一下;

 

s_pyd :应该还是要遍历的把 因为你要都标出来 也就相当于遍历了一遍;

 

Erorr:两幅图像素相减,得到的矩阵中非零的就是有差异的地方,找到重心,画个圈就行了;

 

zhoujk:如果是拷屏或类似的方法,就可以用图像相减的方法;试着用汉字OCR吧。还有一个方法,用SIFT来进行点匹配,之后进行图相减运算。对于含噪声的图,可以先进行降噪处理;

 

mjh1021:SSIM;

 

YODOYODO:有噪声的话简单的想减搞不定啊。可不可以这样?先把图像分成一个一个的方块区域(假设是100*100),然后逐个相减,得到一个100*100的矩阵。然后把矩阵二值化,去掉孤立的非零点(就是说8邻域内的点全是0而自己是1的点),然后把矩阵所有的节点相加,得到一个“距离”,设定一个阈值,当阈值大于一个数的时候就认为这个方块区域是有差异的。这样把所有的方块比对一遍,就能得到一个结果矩阵,按照这个结果矩阵把不同的方块圈起来就可以了,这里可能去要一个方块合并的策略,把相邻的有差异个方块合并到一起,然后用一个圆圈起来。

     去找个能在点阵图上输出的图形库,里面肯定有根据参数画椭圆的功能,比如agg啊什么的;

 

 

strongmission:pca ;

 

lisunlin0:可以基于纹理比较。事实上,基于图像逻辑内容的比较是非常复杂的工作。别看大家回答的很踊跃,其实没有谁能拿出实际可行的高效算法;

 

healer_kx:矩阵相减啊。得到的矩阵满足一定条件,即可认为相同;

 

Guassfans:利用OpenCV的解决方案:
http://www.cnblogs.com/xrwang/archive/2010/04/29/StereoSGBMAndSetWindowProperty.html

dirdirdir3:如果不是象素点对应的,最应该先搞得是匹配吧...............然后才是对比;

 

flydreamGG:不知道你的前提是什么?两幅图像大小完全一样吗??你上面只是说了有没有噪声,并没有说要进行匹配的问题。如果要进行匹配,那么任何算法都免不了这一步,这就会比比较两幅图像要复杂的多,因为本身就是一个比对的过程。如果不需要就行匹配,最简单的方法就是差影法,也就是上面说的直接相减取绝对值的方法,因为这种方法只需要遍历一次。如果担心效果不理想,可以对差影后的图像做简单得处理,比如二值化,消噪等,来突出显著差异的位置。

 

你可能感兴趣的:(图像比对算法)