python使用PIL和matplotlib获取图片像素点并合并解析


Posted in Python onSeptember 10, 2019

python 版本 3.x

首先安装 PIL

由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。

所以 安装:

pip install pillow

获取像素点

import numpy as np
from PIL import Image
img = Image.open("./b.png").convert('RGBA')
a_img = np.asarray(img)

获取的图片像素为 一个二维数组,相当于是二维左边系, x ,y 然后里面存了一个元组 值分别为 r g b a

分别计算改变了像素值之后,就需要将数据写入到图片了,这个时候就需要 matplotlib

import matplotlib.pyplot as plt
 
plt.figure("beauty") # 开启图层,名称为 beauty
plt.imshow(a_img) # 二维数组的数据
plt.axis('off')
#plt.show()
plt.savefig("./result.png")

下面给出一个完整的 demo

需要将两张图片合并计算,并输出结果:

python使用PIL和matplotlib获取图片像素点并合并解析

python使用PIL和matplotlib获取图片像素点并合并解析

将上面两个图片合并

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
def modeSuperposition(basePixel,mixPixel,alpha):
 basePixel = int(basePixel)
 mixPixel = int(mixPixel);
 res=0
 if basePixel <= 128 :
  res = int(mixPixel) * int(basePixel) / 128;
 else:
  res = 255 - (255 - mixPixel)*(255 - basePixel) / 128;  
 a = alpha / 255; 
 if a > 1:
  a = 1
 res = (1-a)*basePixel + a*res 
 t = int(res)&-256
 if t == 0:
  return int(res)
 if res > 255:
  return 255 
 return 0 
def mergePoint(x,y):
 p1 = img1[x][y]
 p2 = img2[x][y]
 p1[1] = modeSuperposition(p1[0],p2[0],p2[3])
 p1[2] = modeSuperposition(p1[1],p2[1],p2[3])
 p1[3] = modeSuperposition(p1[2],p2[2],p2[3])  
imgA = Image.open('./b.png')
img1=np.array(imgA.convert('RGBA')) #打开图像并转化为数字矩
img2=np.array(Image.open("./light.png").convert('RGBA'))  
i = len(img1);
j = len(img1[0]);
 
for k in range(0,len(img2)):
 for n in range(0,len(img2[0])):
  if k < i and n < j:
   mergePoint(k,n)  
#img = Image.new("RGBA",imgA.size)###创建一个5*5的图片
plt.figure("beauty") # 开启图层,名称为 beauty
plt.imshow(img1) # 二维数组的数据
plt.axis('off')
#plt.show()
plt.savefig("./result.png")

结果如下:

python使用PIL和matplotlib获取图片像素点并合并解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
编程语言Python的发展史
Sep 26 Python
python实现带声音的摩斯码翻译实现方法
May 20 Python
Django框架中方法的访问和查找
Jul 15 Python
python 换位密码算法的实例详解
Jul 19 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
简单了解Python读取大文件代码实例
Dec 18 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
python内置进制转换函数的操作
Jun 02 Python
Python开发五子棋小游戏
May 02 Python
Python字符串中添加、插入特定字符的方法
Sep 10 #Python
详解python uiautomator2 watcher的使用方法
Sep 09 #Python
一行Python代码制作动态二维码的实现
Sep 09 #Python
python制作英语翻译小工具代码实例
Sep 09 #Python
Python pandas.DataFrame 找出有空值的行
Sep 09 #Python
Python制作词云图代码实例
Sep 09 #Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 #Python
You might like
比较全的PHP 会话(session 时间设定)使用入门代码
2008/06/05 PHP
php学习笔记之面向对象
2014/11/08 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
PHP getName()函数讲解
2019/02/03 PHP
简单的JS多重继承示例
2008/03/13 Javascript
JavaScript Prototype对象
2009/01/07 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
javascript实现密码验证
2015/11/10 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
使用Python读取大文件的方法
2018/02/11 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
2020/02/25 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
班子四风对照检查材料思想汇报
2014/09/29 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
超市督导岗位职责
2015/04/10 职场文书
董事长秘书工作总结
2015/08/14 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书