python处理mat数据和处理png的区别_python 使用 PIL 和 matplotlib 获取图片像素点处理之后再写入...

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

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

将上面两个图片合并

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模块来进行图片对比

使用Python的PIL模块来进行图片对比 在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, ...

python 利用PIL库进行更改图片大小的操作

python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需 ...

Python爬虫技术(从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类—Jason niu

网上教程太啰嗦,本人最讨厌一大堆没用的废话,直接上,就是干! 网络爬虫?非监督学习? 只有两步,只有两个步骤? Are you kidding me? Are you ok? 来吧,follow me ...

Python利用PIL生成随机验证码图片

安装pillow: pip install pillow PIL中的Image等模块提供了创建图片,制作图片的功能,大致的步骤就是我们利用random生成6个随机字符串,然后利用PIL将字符串绘制城图 ...

pgmagick,pil不保存图片并且获取图片二进制数据记录

PIL和pgmagick都是python中图像处理的库,只不过PIL功能更强大 pgmagick和PIL中对数据进行调整后经常需要调用write或者save方法保存图片,然后在读取图片的内容,这样很麻 ...

python自动化登录获取图片登录验证码

主要记录一下:图片验证码1.获取登录界面的图片2.获取验证码位置3.在登录页面截取验证码保存4.调用百度api识别(目前准确率较高的识别图片api)本次登录的系统页面,可以看到图片验证码的位置登录页面 ...

Python PIL方式打开的图片判断维度

1. PIL方式打开的图片判断维度    好久没更新啦,哈哈哈~~!今天跟宝宝们分享一篇如何判断灰度图像和彩色图像维度的方法.我们在读取灰度图像和彩色图像时,发现读取出来的图片维度不同,当我们要做后续 ...

cocos2d-x 获取图片的某像素点的RGBA颜色 -转

cocos2d-x 获取图片的某像素点的RGBA颜色  原文:http://www.cnblogs.com/jaoye/archive/2013/02/19/2916501.html 没做过 太多的图 ...

使用Python和OpenCV通过网址URL获取图片

在OpenCV中通过图片的URL地址获取图片: # -*- coding: utf-8 -*- import numpy as np import urllib import cv2 # URL到图片 ...

随机推荐

Android深度探索(卷1)HAL与驱动开发

第一章 介绍Android驱动开发和移植技术 主要对android和linux做了总体的介绍,让我们有了个感性的认识. 一.Android的四层系统架构: a) Linux内核:Android是基于L ...

Python的平凡之路(8)

(本文是对平凡之路(7)的补充等) 一.动态导入模块 import importlib __import__('import_lib.metaclass') #这是解释器自己内部用的 #importl ...

Nim语言:Pascal的语法,Python的缩进

http://nim-lang.org/ 德国人Andreas Rumpf的作品,原因是他对过去使用的每种语言都不满意(Pascal也不满意?).以前叫Nimrod语言,从0.96版本开始改名为Nim ...

Objective-c单例模式详解

转载自:http://www.jianshu.com/p/85618bcd4fee 单例模式出现以后,关于它的争执就一直存在.在开发项目中,有很多时候我们需要一个全局的对象,而且要保证全局有且仅有一份 ...

angular-route 里面templeteUrl 动态加载

https://segmentfault.com/q/1010000002524964

ios开发实践之UIDatePicker(已对之前无法解决的问题做了解答)

需求:要做一个生日选择的控件,但除了选择之外还需要自定义几个控件,跟生日选择控件组合一起. 做法:自定义了一个UIImageView,并且作为背景.在这个背景view上再添加其他button和时间选择 ...

Nodejs cluster模块深入探究

由表及里 HTTP服务器用于响应来自客户端的请求,当客户端请求数逐渐增大时服务端的处理机制有多种,如tomcat的多线程.nginx的事件循环等.而对于node而言,由于其也采用事件循环和异步I/O机 ...

PyQt5基础应用一

一.PyQt5基础   1.1 创建窗口 import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == '__ ...

epoch、 iteration和batchsize区别

转自: https://blog.csdn.net/qq_27923041/article/details/74927398 深度学习中经常看到epoch. iteration和batchsize,下 ...

透明度 rgba 和 opacity 的区别

rgba: 使用方式:rgba(255, 255, 255, .5) 最后一个参数表示透明度取值范围 0 ~1    只作用于元素的颜色或其背景色. opacity :  使用方式:opacity : ...

你可能感兴趣的:(python处理mat数据和处理png的区别_python 使用 PIL 和 matplotlib 获取图片像素点处理之后再写入...)