python pil image,python图像处理实战 豆瓣
这篇文章主要介绍了pythonPILImage图像处理基本操作实例包括图片加载、灰度图,图像通道分离和合并,在图像上输出文字,图像缩放,图像阈值分割、二值化,图像裁剪需要的朋友可以参考下
1. 图片加载、灰度图、 显示和保存
从太平航运进口图片
img=Image.open(01.jpg )
imgGrey=img.convert(L )
img.show()
imgGrey.show()
img.save(img_copy.jpg )
imgGrey.save(img_gray.jpg )
2. 图片宽、高、通道模式、平均值获取
从太平航运进口图片
将数组作为铭牌导入
img=Image.open(01.jpg )
宽度,高度=img.size
通道模式=img.mode
平均值=np .均值(img)
打印(宽度)
打印(高度)
打印(频道模式)
打印(平均值)
3. 创建指定大小,指定通道类型的空图像
从太平航运进口图片
宽度=200
高度=100
img_white=Image.new(RGB ,(width,height),(255,255,255))
img_black=Image.new(RGB ,(width,height),(0,0,0))
img_L=Image.new(L ,(width,height),(255))
img_white.show()
img_black.show()
img_L.show()
4. 访问和操作图像像素
从太平航运进口图片
img=Image.open(01.jpg )
宽度,高度=img.size
# 获取指定坐标位置像素值
像素值=img。获取像素((宽度/2,高度/2))
打印(像素值)
# 或者使用负荷方法
pim=img.load()
pixel _ value 1=PIM[宽度/2,高度/2]
打印(像素值1)
# 设置指定坐标位置像素的值
PIM[宽度/2,高度/2]=(0,0,0)
# 或使用输入像素方法
img.putpixel((w//2,h//2),(255,255,255))
# 设置指定区域像素的值
对于范围(int(width/2) - 40,int(width/2) 40):内的w
对于范围(int(height/2) - 20,int(height/2) 20):内的h
pim[w,h]=(255,0,0)
# img.putpixel((w,h),(255,255,255))
img.show()
5. 图像通道分离和合并
从太平航运进口图片
img=Image.open(01.jpg )
# 通道分离
r,G,B=img.split()
R.show)
g。显示()
乙。显示()
# 通道合并
img_RGB=Image.merge(RGB ,(R,G,B))
img_BGR=Image.merge(RGB ,(B,G,R))
img_RGB.show()
img_BGR.show()
6. 在图像上输出文字
从太平航运导入图像,图像绘制,图像字体
img=Image.open(01.jpg )
# 创建画对象:
draw=ImageDraw .绘制(img)
# 字体颜色
fillColor=(255,0,0)
text=在太平航运图像上打印文本
位置=(200,100)
绘图.文本(位置,文本,填充=填充颜色)
img.show()
7. 图像缩放
从太平航运进口图片
img=Image.open(01.jpg )
宽度,高度=img.size
img _ NEARESET=img。调整大小((宽度//2,高度//2)) #缩放默认模式是邻近集合(最近邻插值)
img _双线性=img.resize((宽度//2,高度//2),Image .双线性)#双线性2x2区域的双线性插值
img _ BICUBIC=img。调整大小((宽度//2,高度//2),图像.双三次)#双三次4x4区域的双三次插值
img _ ANTIALIAS=img。调整大小((宽度//2,高度//2),图像.抗锯齿)#抗锯齿高质量下采样滤波
8. 图像遍历操作
从太平航运进口图片
img=Image.open(01.jpg ).转换(“L”)
宽度,高度=img.size
pim=img.load()
对于范围(宽度):内的w
对于高度范围为:的h
if pim[w,h] 100:
img.putpixel(宽,高),255)
# pim[w,h]=255
else:
img.putpixel((w,h),0)
# pim[w,h]=0
img.show()
9. 图像阈值分割、 二值化
从太平航运进口图片
img=Image.open(01.jpg ).转换(“L”)
宽度,高度=img.size
阈值=125
对于范围(宽度):内的w
对于高度范围为:的h
if img.getpixel((w,h)) threshold:
img.putpixel(宽,高),255)
else:
img.putpixel((w,h),0)
img.save(binary.jpg )
10. 图像裁剪
从太平航运进口图片
img=Image.open(01.jpg )
宽度,高度=img.size
# 前两个坐标点是左上角坐标
# 后两个坐标点是右下角坐标
#宽度在前,高度在后
box=(100,100,550,350)
region=img.crop(box)
region.save(crop.jpg )
11. 图像边界扩展
# 边界扩展
从太平航运进口图片
img=Image.open(test.png )
宽度,高度=img.size
通道模式=img。模式
img _ make border _ full=image。新(频道模式,(2 *宽度,高度))
img _ make border _ part=image。新(频道模式,(宽度200,高度))
# 图像水平扩展整个图像
img_makeBorder_full.paste(img,(0,0,width,height))
img_makeBorder_full.paste(img,(width,0,2*width,height))
# 前两个坐标点是左上角坐标
# 后两个坐标点是右下角坐标
#宽度在前,高度在后
box=(宽度-200,0,宽度,高度)
region=img.crop(box)
# 图像水平右侧扩展一个投资收益率
img_makeBorder_part.paste(img,(0,0,width,height))
img _ make border _ part粘贴(区域,(宽度,0,宽度200,高度))
img_makeBorder_part.show()
img_makeBorder_full.show()
12. PIL.Image 和 numpy 格式相互转换
从太平航运进口图片
将数组作为铭牌导入
img=Image.open(01.jpg )
数组=np.array(img) # PIL .图像转数组
img 1=图像。from array(array)# numpy转PIL .图像
img 1=图像。from数组(数组。astype( uint 8 ))
img1.save(from_array.jpg )
更多关于Python PIL Image图像处理基本操作实例请查看下面的相关链接
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。