PIL实现比较两个图片的不同(简单方法)
2019-01-09 11:02
155 查看
简单的处理:通过将图片每一个像素的RGB值提取出来,然后比较两个图片每一个像素的RGB值;该方法的问题是速度比较慢,需要消耗较大的空间;
from PIL import Image,ImageDraw ''' 思路:获取每个点像素值, 将两张图片同一位置的像素相减小于阀值,(颜色阈值:图像的转换是比较像素的过程,在比较两个像素时,如果RGB的颜色值 的差异小于颜色阈值,则可以认为这两个像素是相同的颜色,因此,颜色阈值越高,则颜色数量越少.) 得到位置对位置进行标记 ''' def compete_pix(im0, im1, i, j): pix_im0 = im0.getpixel((i, j)) pix_im1 = im1.getpixel((i, j)) x=-1 y=-1 # 定义阀值 threshold = 60 if abs(pix_im0[0] - pix_im1[0]) < threshold and abs(pix_im0[1] - pix_im1[1]) < threshold and abs( pix_im0[2] - pix_im1[2]) < threshold: return x,y else: x=i y=j return x,y def main(): im0 = Image.open('0.jpg') im1 = Image.open('1.jpg') im2=im1.copy() draw=ImageDraw.Draw(im2) # 对每一个的像素进行比较(RGB) for i in range(im0.size[0]): for j in range(im0.size[1]): x,y=compete_pix(im0, im1, i, j) #对图片进行绘制 if x and y: draw.point((x,y),fill=(0,255,0)) im2.show() def text(): im1 = Image.open('1.jpg') im2 = im1.copy() draw = ImageDraw.Draw(im1) if __name__ == '__main__': text() main()
相关文章推荐
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第三部分 前n项(Top-n)查询)
- Dreamweaver 简单实现鼠标经过图片变换的方法
- PHP实现查询两个数组中不同元素的方法
- 如何用最简单的方法找出两个表中不同的记录
- 简单方法实现webbrowser不显示图片flash的功能。
- android 里面对图片的不同压缩处理 以及简单拍照功能实现加设置闪光灯效果
- java中两个对象间的属性值复制,比较,转为map方法实现
- 用OO方法开发ALV(实现横向alv head,与纵向ALV head比较相似,只有少许不同)
- 如何比较两个EXCEL 文件的不同(各个EXCEL版本的方法)
- Python比较两个图片相似度的方法
- php实现比较两个文件夹异同的方法
- JavaScript简单实现鼠标移动切换图片的方法
- Python使用PIL库实现验证码图片的方法
- js时间比较 js计算时间差的简单实现方法
- [转]比较高效地实现从两个不同数组中提取相同部分组成新的数组(只支持Int类型) [C#]
- 实现Java中对象比较的两个方法
- [C#]简单重写IComparer接口,实现自己的String.CompareTo 方法,自定义比较规则。
- 利用JavaScript及jQuery实现图片预加载的简单方法
- 【转载】Python中如何高效实现两个字典合并,三种方法比较。
- 【C++】用函数模板实现不同类型的两个数比较大小