两副图片的差异比较的C#实现

简介:

早上看到stg609 写的《Dot Net下实现屏幕图像差异获取v2.0》文章,想起自己以前写过的一个《大家来找茬》的游戏辅助工具(就是作弊器了,嘿嘿),当时也是用到了判断比较两副图片的差异功能。现将当时写的差异比较代码发上来,给大家参考参考。

当时用的简单实现方法就是:将两副图片同时按一定大小的小块“切分开”,再分别比较这些小块,如果某个块里出现有一个不同的象素点,那就认为此块所在的位置是有差异的否则认为是相同的,当比较完所有小块后,两副图之间的不同之处的位置也就出来了。因为要进行所有小块比较,所以最坏的情况下是要扫描比较图片的所有象素点(两副图完全一样的情况时),最理想的情况就是只扫描比较所有小块的第一点(两副图完全不一样的情况时)。

这种方法的判断精确性是根据“块”大小来决定的,也就是如果你将“块”设得过大,判断的“精确性”就越低(因为只要块里有一点不相同,就认为此块位置是有差异的),如将“块”设置得过小,则判断的“精确性”就越高,但需要时间也有可能会越多!

 

如有下面的两副图:(以下图借用了stg609 的《Dot Net下实现屏幕图像差异获取v1.0》文章里的截图,呵)

                             

            (第一幅图片)                                                               (第二幅图片)

 

将上面两幅图按20*20(px)大小“切分”:

 

                     

            (第一幅图片)                                                               (第二幅图片)

 

两副图都分别“切分”成多个20*20的小块,程序再分别对这些小块进行判断,如果“扫描”到小块里的某个象素点是不相同的则记录此块的坐标位置并退出当前块的扫描,继续扫描下一个小块,直到所有小块“扫描”完成。

在程序处理时为提高速度,利用了Bitmap的LockBits方法,直接对图片的内存数据操作,并且“切分”图片的小块时,并不真正的“切图”,而是利用“内存指针”进行数据定位操作。如下面代码:

 

代码

 

 

 

示例项目代码下载:

/Files/kingthy/ImageComparer.zip

上面两幅图的差异比较后的截图:(两图中蓝色与红色框框内的小块就是表明有差异的小块)

 本文转自Kingthy博客园博客,原文链接:http://www.cnblogs.com/kingthy/archive/2009/12/16/1625745.html,如需转载请自行联系原作者

相关文章
|
17天前
|
编解码 人工智能 测试技术
无需训练,这个新方法实现了生成图像尺寸、分辨率自由
【4月更文挑战第25天】研究人员提出FouriScale方法,解决了扩散模型在生成高分辨率图像时的结构失真问题。通过膨胀卷积和低通滤波,该方法实现不同分辨率下图像的结构和尺度一致性,无需重新训练模型。实验显示FouriScale在保持图像真实性和完整性的同时,能生成任意尺寸的高质量图像,尤其在处理高宽比图像时表现出色。尽管在极高分辨率生成上仍有局限,但为超高清图像合成技术提供了新思路。[链接: https://arxiv.org/abs/2403.12963]
31 5
|
9月前
|
数据可视化
绘制热图时看不出颜色差异?四种方式转换处理使结果显而“易”见
绘制热图时看不出颜色差异?四种方式转换处理使结果显而“易”见
18268 2
|
1月前
|
前端开发 计算机视觉
InstantStyle,无需训练,风格保留文生图
InstantStyle 是一个通用框架,它采用两种简单但有效的技术来实现风格和内容与参考图像的有效分离。
|
机器学习/深度学习
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
|
16天前
|
算法 索引
**无损压缩**方式对图像质量的影响最小
【4月更文挑战第26天】**无损压缩**方式对图像质量的影响最小
15 2
在图片上停留时逐渐增强或减弱的透明效果demo效果示例(整理)
在图片上停留时逐渐增强或减弱的透明效果demo效果示例(整理)
|
7月前
|
机器学习/深度学习 数据采集 PyTorch
图片风格自动分析模型
图片风格自动分析模型
104 0
|
9月前
|
人工智能 Java
Java实现图片无损任意角度旋转
Java实现图片无损任意角度旋转
198 1
|
12月前
|
机器学习/深度学习 算法 测试技术
图像大面积缺失,也能逼真修复,新模型CM-GAN兼顾全局结构和纹理细节(1)
图像大面积缺失,也能逼真修复,新模型CM-GAN兼顾全局结构和纹理细节
143 0
|
12月前
|
编解码 数据可视化 UED
图像大面积缺失,也能逼真修复,新模型CM-GAN兼顾全局结构和纹理细节(2)
图像大面积缺失,也能逼真修复,新模型CM-GAN兼顾全局结构和纹理细节
230 0