# -*- coding: utf-8 -*-

 from PIL import Image
from pylab import * def compare_pic_L(pic1,pic2):
#打开第一张图片
im1 = Image.open(pic1).convert('L')
print im1.format ,im1.size, im1.mode #像素值转数组
aim1 = np.transpose(array(im1))
#im1.show() im2=Image.open(pic2).convert('L')
aim2=np.transpose(array(im2))
im2.show() dif= np.zeros((300,307)) for x in range(dif.shape[0]):
for y in range(dif.shape[1]):
if aim1[x,y] == aim2[x,y] :
dif[x,y]=255
else:
dif[x,y]=0
#print dif[x,y]
#print dif
print 'dif:',dif.shape x=im1.size[0]
y=im1.size[1] c = Image.new("L",(x,y),(255))
#c.show()
#用 像素灰度值画图
for u in range(0,x):
for i in range(0,y):
#print type(dif[i,u])
ss=int(dif[u,i])
c.putpixel((u,i),ss)
c.show() def compare_colorful_pic(pic1,pic2):
#打开第一张 把像素点信息保存到数组
im3_1 = Image.open(pic1)
array_im1=np.transpose(array(im3_1))
print array_im1.shape #打开第二张
im33_ = Image.open(pic2)
array_im2=np.transpose(array(im33_))
print array_im2.shape #作差
dif_=array_im2 - array_im1
#print dif_
print type(dif_) #用像素点三基色画图
pic_D = Image.new("RGB",(array_im1.shape[1],array_im1.shape[2]),(255))
for x in range(array_im1.shape[1]):
for y in range(array_im1.shape[2]): pic_D.putpixel((x,y),(255-dif_[0,x,y],255-dif_[1,x,y],255-dif_[2,x,y]))
#注意 两个参数都为元组;;第一个参数:像素数量 宽*高,第二个参数为 三基色 (三通道) pic_D.show()
pic_D.save('d.jpg') if __name__ == "__main__":
compare_pic_L('2.jpg','2__.jpg')
compare_colorful_pic('2.jpg','2__.jpg')

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

  1. Python PIL Image图片显示系列

    1. PIL Image图片显示 在使用PIL函数中的Image方法读取图片时,对于图片的shape,可能有不少宝宝存在疑惑.是什么疑惑了?就是image = Image.open(image_pat ...

  2. python PIL实现图片合成

    在项目中需要将两张图片合在一起.遇到两种情况,一种就是两张非透明图片的合成, 一种是涉及到透明png的合成. 相关API见 http://pillow.readthedocs.io/en/latest ...

  3. python PIL图像处理-图片上添加文字

    首先需要安装库pillow cmd安装命令:pip install pillow 安装完后,编写脚本如下: from PIL import Image, ImageDraw, ImageFont de ...

  4. Python,PIL压缩裁剪图片

    自己写了用来压缩 DC 照片的,批量处理整目录文件,非常方便.需要安装 PIL #!/usr/bin/env python import Image import os import os.path ...

  5. python base64 编解码,转换成Opencv,PIL.Image图片格式

    二进制打开图片文件,base64编解码,转成Opencv格式: # coding: utf-8 import base64 import numpy as np import cv2 img_file ...

  6. 基于Python PIL实现简单图片格式转化器

    基于Python PIL实现简单图片格式转化器 目录 基于Python PIL实现简单图片格式转化器 1.简介 2.前期资料准备 2.1.1如何实现图片格式转换? 2.1.2如何保存需要大小的图片? ...

  7. python PIL Image模块

    原地址:http://hi.baidu.com/drunkdream/item/9c9ac638dfc46ec6382ffac5 实验环境: windows7+python2.6+pycrust+PI ...

  8. python 将png图片格式转换生成gif动画

    先看知乎上面的一个连接 用Python写过哪些[脑洞大开]的小工具? https://www.zhihu.com/question/33646570/answer/157806339 这个哥们通过爬气 ...

  9. Python PIL

    Python PIL PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储.显示和处理,能够处理几乎所有格式的图片. 一.PIL库简介 1. ...

随机推荐

  1. 共享文件夹:The user has not been granted the requested logon type at this computer

    场景重现 今天做一个项目测试,要用到虚拟机,于是在虚拟机(XP 32)上新建了一个共享的文件夹.然后我在Win7 机器上访问它得到如下的error 消息:

  2. [ASP.NET MVC 大牛之路]01 - 开篇

    匆匆2014,转眼就到末尾了.在这一年,你还有哪事情些想做而没有做? 2014年在我身上发生了两件意义重大的事,一是正月初一宝宝出生,我升级成为了爸爸:二是进入了一家创业公司,成为了技术负责人. 去年 ...

  3. 《Entity Framework 6 Recipes》中文翻译系列 (35) ------ 第六章 继承与建模高级应用之TPH继承映射中使用复合条件

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-11  TPH继承映射中使用复合条件 问题 你想使用TPH为一张表建模,建模中使 ...

  4. JSDeferred 源码分析

    不经意看到了一个构思非常惊人的异步流程控制库,发出来分享下 http://cho45.stfuawsc.com/jsdeferred/ 关于CommonJS Promises请看另一个异步库 http ...

  5. python3 字符串与列表常用功能

    一.字符串常用功能 1. capitalize(),将字符串的首字母变成大写,其余全部置为小写:如果字符串中有多个单词,也只是将第一个单词的首字母置为大写:例: >>> name = ...

  6. 深入学习jQuery鼠标事件

    × 目录 [1]类型 [2]写法 [3]合成事件[4]鼠标按键[5]修改键[6]坐标位置 前面的话 鼠标事件是DOM事件中最常用的事件,jQuery对鼠标事件进行了封装和扩展.本文将详细介绍jQuer ...

  7. .NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Software Protector序列号生成组件.今天就通过一篇简单的文章来预览一下其强大的功 ...

  8. MySQL存储过程及触发器

    一.存储过程 存储过程的基本格式如下: -- 声明结束符 -- 创建存储过程 DELIMITER $ -- 声明存储过程的结束符 CREATE PROCEDURE pro_test() --存储过程名 ...

  9. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...

  10. http 错误代码表

    所有 HTTP 状态代码及其定义.  代码  指示  2xx  成功  200  正常:请求已完成.  201  正常:紧接 POST 命令.  202  正常:已接受用于处理,但处理尚未完成.  2 ...