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递归计算N!的方法
May 05 Python
在Python的Django框架中编写错误提示页面
Jul 22 Python
python多进程实现进程间通信实例
Nov 24 Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 Python
深入理解Python爬虫代理池服务
Feb 28 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
python处理两种分隔符的数据集方法
Dec 12 Python
详解python中的模块及包导入
Aug 30 Python
Python短信轰炸的代码
Mar 25 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
Python pip安装模块提示错误解决方案
May 22 Python
30行Python代码实现高分辨率图像导航的方法
May 22 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
织梦模板标记简介
2007/03/11 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
PHP会话处理的10个函数
2015/08/11 PHP
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
js同源策略详解
2015/05/21 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
Python探索之ModelForm代码详解
2017/10/26 Python
彻底搞懂Python字符编码
2018/01/23 Python
python3实现基于用户的协同过滤
2018/05/31 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
python3实现高效的端口扫描
2019/08/31 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
最新pycharm安装教程
2020/11/18 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
Java工程师面试集锦之Spring框架
2013/06/16 面试题
个人实用简单的自我评价
2013/10/19 职场文书
火车来了教学反思
2014/02/11 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
迎新生欢迎词2015
2015/07/16 职场文书