python pil image,python图像处理实战 豆瓣

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: