python PIL比较图片像素

 1 # -*- coding: utf-8 -*-
 2
 3 from PIL import Image
 4 from pylab import *
 5
 6 def compare_pic_L(pic1,pic2):
 7     #打开第一张图片
 8     im1 = Image.open(pic1).convert(‘L‘)
 9     print im1.format ,im1.size, im1.mode
10
11     #像素值转数组
12     aim1 = np.transpose(array(im1))
13     #im1.show()
14
15     im2=Image.open(pic2).convert(‘L‘)
16     aim2=np.transpose(array(im2))
17     im2.show()
18
19     dif= np.zeros((300,307))
20
21     for x in range(dif.shape[0]):
22         for y in range(dif.shape[1]):
23             if aim1[x,y] == aim2[x,y] :
24                 dif[x,y]=255
25             else:
26                 dif[x,y]=0
27                 #print dif[x,y]
28     #print dif
29     print ‘dif:‘,dif.shape
30
31     x=im1.size[0]
32     y=im1.size[1]
33
34     c = Image.new("L",(x,y),(255))
35     #c.show()
36     #用 像素灰度值画图
37     for u in range(0,x):
38         for i in range(0,y):
39             #print type(dif[i,u])
40             ss=int(dif[u,i])
41             c.putpixel((u,i),ss)
42     c.show()
43
44 def compare_colorful_pic(pic1,pic2):
45     #打开第一张 把像素点信息保存到数组
46     im3_1 = Image.open(pic1)
47     array_im1=np.transpose(array(im3_1))
48     print array_im1.shape
49
50     #打开第二张
51     im33_ = Image.open(pic2)
52     array_im2=np.transpose(array(im33_))
53     print array_im2.shape
54
55     #作差
56     dif_=array_im2 - array_im1
57     #print dif_
58     print type(dif_)
59
60     #用像素点三基色画图
61     pic_D = Image.new("RGB",(array_im1.shape[1],array_im1.shape[2]),(255))
62     for x in range(array_im1.shape[1]):
63         for y in range(array_im1.shape[2]):
64
65             pic_D.putpixel((x,y),(255-dif_[0,x,y],255-dif_[1,x,y],255-dif_[2,x,y]))
66             #注意 两个参数都为元组;;第一个参数:像素数量 宽*高,第二个参数为 三基色 (三通道)
67
68     pic_D.show()
69     pic_D.save(‘d.jpg‘)
70
71 if __name__ == "__main__":
72     compare_pic_L(‘2.jpg‘,‘2__.jpg‘)
73     compare_colorful_pic(‘2.jpg‘,‘2__.jpg‘)
时间: 2024-10-14 00:14:18

python PIL比较图片像素的相关文章

python PIL Image图片裁剪

#coding=utf-8 from PIL import Image # 参数filePath = '~/a_1.jpeg'mode = 'r' # 这里的 mode 必须为r,否则报错 # 读取图片# Image.open() 为懒执行, 只验证是否是图片, 获取数据时才会读取数据im = Image.open(filePath, mode) box = (0,0,1100,1000) # box为4元祖, 分别为裁剪图片左上角,右下角的像素坐标print im# 图片裁切成矩形,返回Ima

python PIL 操作图片

第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 https://github.com/Yixiaohan/show-me-the-code 首先要安装PIL 库,参考http://liam0205.me/2015/04/22/pil-tutorial-basic-usage/ sudo pip install Pillow 然后python 如下 from PIL import Image, ImageDraw im

python PIL实现图片合成

在项目中需要将两张图片合在一起.遇到两种情况,一种就是两张非透明图片的合成, 一种是涉及到透明png的合成. 相关API见 http://pillow.readthedocs.io/en/latest/reference/Image.html 第一种情况,直接将两张图片合在一起就可以了.如下图所示,将两张图片合在一起   +        =      详细代码 from PIL import Image #加载底图 base_img = Image.open(ur'D:\Desktop\1.p

python PIL 合成图片,图片加文字

# -*- coding:utf-8 -*- from PIL import Image from PIL import Image from PIL import ImageDraw from PIL import ImageFont # 加载底图# 设定边界# 写进新图片内容# 保存 # 加载底图 base_img = Image.open('E:/Work/image/house_image/origin2.png') # 底图上需要P掉的区域 # 以左边界为准(left, upper,

RGB值转化图片(python PIL)

今天看到一道misc的题目,得到一RGB值的txt文件,需解决RGB值转图片.具体题目:here 由于第一次碰到这个类型的题目,做一下记录,在这里我采用的是python 的PIL图像库 具体思路: 1.首先我们要先确定图片的size,既宽度高度 通过txt文件行数(61366=2*61*503,因为最后一行是空行,所以不在计算范围内)的整数分解 可以得到以下几个不同的size:503*122,1006*61,30683*2(x,y交换一下对图片不会有很大的变化,只是横着和竖着的区别) 所以我们接

图片切碎片脚本 python PIL库实践

python PIL库实践运用,对图像进行切碎片操作. 原图如图一 图一 我们想要的是图片的不同部分,比如图二中1.2.3.4每一个分区单独的碎片, 图二 做法是做出4张跟原图大小一样的碎片模版图,白底,想要的区域涂黑(非纯白)即可.1区域的碎片模板图如图三所示: 图三 脚本处理图片的方法:先找出碎片模版中的非白区域(可以不规则),然后将原图中这个区域内的所有像素点的颜色都放到新的一张跟原图像素大小一样的新图上,新图的其余位置都设置成透明(可以根据自己的不同需求进行不同的调整). 1碎片模版得到

Python PIL创建文字图片

PIL库中包含了很多模块,恰当地利用这些模块可以做许多图像处理方面的工作. 下面是我用来生成字母或字符串测试图片而写的类及测试代码. 主要用到的模块: PIL.Image,PIL.ImageDraw,PIL.ImageFont PIL.Image用来生成一个空的图片,ImageDraw用来在空图片上画图及写字符,ImageFont则是创建需要使用到的字体 #-*- coding:gb2312 -*- from PIL import Image,ImageDraw,ImageFont,ImageO

python PIL Image模块

原地址:http://hi.baidu.com/drunkdream/item/9c9ac638dfc46ec6382ffac5 实验环境: windows7+python2.6+pycrust+PIL1.1.7 实验操作: Image模块 例子:打开.旋转.显示一副图像 >>> import Image>>> infile='e:/doc/program/python/2.6/study/temp/freebsd.jpg'>>> im=Image.o

利用Python PIL、cPickle读取和保存图像数据库

利用Python PIL.cPickle读取和保存图像数据库  @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/43226127 计算机视觉.机器学习任务中,经常跟图像打交道,在C++上有成熟的OpenCV可以使用,在Python中也有一个图像处理库PIL(Python Image Library),当然PIL没有OpenCV那么多功能(比如一些人脸检测的算法),不过在Python上,我们用PIL进行一些基本