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 和 matplotlib 获取图片像素点处理之后再写入的更多相关文章

  1. 使用Python的PIL模块来进行图片对比

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Nginx 和 IIS 实现动静分离(转)

    转载地址:https://www.cnblogs.com/paul8339/p/5825201.html 动静分离,说白了,就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与 ...

  2. windows和linux换行规则的区别

    在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这 ...

  3. mq_receive

    NAME mq_receive - 从消息队列中获取消息 (REALTIME) SYNOPSIS #include <mqueue.h> ssize_t mq_receive(mqd_t ...

  4. 关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。

    参考网址: 1.WPF Tips: Window.ShowDialog()方法:Cannot set Visibility or call Show, ShowDialog, or WindowInt ...

  5. BZOJ3160 万径人踪灭 字符串 多项式 Manachar FFT

    原文链接http://www.cnblogs.com/zhouzhendong/p/8810140.html 题目传送门 - BZOJ3160 题意 给你一个只含$a,b$的字符串,让你选择一个子序列 ...

  6. C# 默认访问修饰符

    c# 中类,成员,枚举,结构等默认访问修饰符是? 根据MSDN文档有: [MSDN] Classes and structs that are not nested within other clas ...

  7. Pok 使用指南

    Pok 使用指南 POK 是一个开源的符合ARINC653的操作系统,因为一些原因,我要开始接触一个全新的领域,再此希望记录下每天点滴进步,同时也欢迎指正吧. 目前先简单说明POK的使用指南 获取源码 ...

  8. 如何运行后台Service?

    Unless you specify otherwise, most of the operations you do in an app run in the foreground on a spe ...

  9. 一文搞定scrapy爬取众多知名技术博客文章保存到本地数据库,包含:cnblog、csdn、51cto、itpub、jobbole、oschina等

    本文旨在通过爬取一系列博客网站技术文章的实践,介绍一下scrapy这个python语言中强大的整站爬虫框架的使用.各位童鞋可不要用来干坏事哦,这些技术博客平台也是为了让我们大家更方便的交流.学习.提高 ...

  10. 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

    A. Odd Palindrome 所有回文子串长度都是奇数等价于不存在长度为$2$的偶回文子串,即相邻两个字符都不同. #include<cstdio> #include<cstr ...