欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

5)Python模块:PIL

程序员文章站 2022-07-10 13:50:46
...

https://www.cnblogs.com/sun-haiyu/p/7127582.html

https://www.cnblogs.com/chimeiwangliang/p/7130434.html

cv2 skimage PIL区别

PIL(Python Imaging Library)是Python一个强大方便的图像处理库,名气也比较大。不过只支持到Python 2.7。

Pillow是PIL的一个派生分支(Fork),但如今已经发展成为比PIL本身更具活力的图像处理库。目前最新版本是3.0.0。

Python 3.x 安装Pillow,安装完成后,使用from PIL import Image就引用使用库了

综上,如果配置的环境是python2,就安装PIL包,不过要下载包安装。如果是python3,就pip install pillow。调用方法都是from PIL import Image

 

from PIL import Image
img=Image.open(r'E:\F\图片\picture\10.jpg')
print(type(img)) #<class 'PIL.JpegImagePlugin.JpegImageFile'>
print(img.size)  # 图片的尺寸
print(img.mode)  # 图片的模式
print(img.format)  # 图片的格式
print(img.getpixel((0, 0)))  # 得到像素:
# img读出来的图片获得某点像素用getpixel((w,h))可以直接返回这个点三个通道的像素值
# 获取图像的灰度值范围
width = img.size[0]
height = img.size[1]

 

array->image
image->array

from PIL import Image
import numpy as np
#生成一个数组,维度为100*100,灰度值一定比255大
narray=np.array([range(10000)],dtype='int').reshape([100,100])
#调用Image库,数组归一化
img=Image.fromarray(narray*255.0/9999)#<class 'PIL.Image.Image'>
print(type(img))
#转换成灰度图
img=img.convert('L')
#可以调用Image库下的函数了,比如show()
img.show()
#Image类返回矩阵的操作 img.getdata() 返回 'ImagingCore'格式
imgdata=np.matrix(img.getdata(),dtype='float').reshape(narray.shape[0],narray.shape[1])
#图像归一化,生成矩阵
nmatrix=imgdata*9999/255.0
img2=Image.fromarray(nmatrix)
img2.show()