python的pillow库应用_python基于pillow库的简单图像处理

from PIL import Image

from PIL import ImageFilter

from PIL import ImageEnhance

import matplotlib.pyplot as plt

# 将彩色图片转成灰度图片

img = Image.open('pic.jpg') # 读取图片

gray = img.convert('L') # 转成灰度图

plt.figure('将彩色图片转成灰度图片')

plt.subplot(1,2,1)

plt.title("original image") # 设置标题

plt.imshow(img) # 显示原始图片

plt.axis('off') # 不显示坐标轴

plt.subplot(1,2,2)

plt.title('gray image') # 设置标题

plt.imshow(gray,cmap = 'gray')

plt.axis('off')

plt.show() # 显示图片框

# 裁剪图像

img = Image.open('pic.jpg') # 读取图片

plt.figure("裁剪图像")

plt.subplot(1,2,1)

plt.title('original image') # 设置标题

plt.imshow(img) # 显示原始图片

plt.axis('off') # 不显示坐标轴

img_size = img.size # 获取图像大小

start_x = int(img_size[0]/2)

end_x = img_size[0]

start_y = int(img_size[1]/2)

end_y = img_size[1]

box = (start_x,start_y,end_x,end_y) # 定义裁剪区间

roi = img.crop(box) # 裁剪

plt.subplot(1,2,2)

plt.title('cropped image') # 设置标题

plt.imshow(roi) # 显示裁剪后的图片

plt.axis('off') # 不显示坐标轴

plt.show() # 显示图片框

# 旋转图像

img = Image.open('pic.jpg') # 读取图片

plt.figure("旋转图像")

plt.subplot(1,2,1)

plt.title('original image') # 设置标题

plt.imshow(img) # 显示原始图片

plt.axis('off') # 不显示坐标轴

dst = img.rotate(45) # 顺时针旋转45度

plt.subplot(1,2,2)

plt.title('rotated image') # 设置标题

plt.imshow(dst) # 显示裁剪后的图片

plt.axis('off') # 不显示坐标轴

plt.show() # 显示图片框

# 寻找边缘信息的滤波

img = Image.open('pic.jpg') # 读取图片

gray = img.convert('L') # 转成灰度图

plt.figure("边缘信息滤波")

plt.subplot(1,2,1)

plt.title('original image') # 设置标题

plt.imshow(gray,cmap = 'gray') # 显示原始图片

plt.axis('off') # 不显示坐标轴

im = gray.filter(ImageFilter.FIND_EDGES) # 边缘滤波

plt.subplot(1,2,2)

plt.title('edge filtering') # 设置标题

plt.imshow(im,cmap = 'gray') # 显示裁剪后的图片

plt.axis('off') # 不显示坐标轴

plt.show() # 显示图片框

# 浮雕滤波

img = Image.open('pic.jpg') # 读取图片

gray = img.convert('L') # 转成灰度图

plt.figure("浮雕滤波")

plt.subplot(1,2,1)

plt.title('original image') # 设置标题

plt.imshow(gray,cmap = 'gray') # 显示原始图片

plt.axis('off') # 不显示坐标轴

im = gray.filter(ImageFilter.EMBOSS) # 浮雕滤波

plt.subplot(1,2,2)

plt.title('embossed filtering') # 设置标题

plt.imshow(im,cmap = 'gray') # 显示裁剪后的图片

plt.axis('off') # 不显示坐标轴

plt.show() # 显示图片框

# 轮廓滤波

img = Image.open('pic.jpg') # 读取图片

gray = img.convert('L') # 转成灰度图

plt.figure("轮廓滤波")

plt.subplot(1,2,1)

plt.title('original image') # 设置标题

plt.imshow(gray,cmap = 'gray') # 显示原始图片

plt.axis('off') # 不显示坐标轴

im = gray.filter(ImageFilter.CONTOUR) # 轮廓滤波

plt.subplot(1,2,2)

plt.title('contour filtering') # 设置标题

plt.imshow(im,cmap = 'gray') # 显示裁剪后的图片

plt.axis('off') # 不显示坐标轴

plt.show() # 显示图片框

# 图像增强

img = Image.open('pic.jpg') # 读取图片

gray = img.convert('L') # 转成灰度图

plt.figure("图像增强")

plt.subplot(1,2,1)

plt.title('original image') # 设置标题

plt.imshow(gray,cmap = 'gray') # 显示原始图片

plt.axis('off') # 不显示坐标轴

im = ImageEnhance.Color(gray).enhance(0.5) # 图像增强

plt.subplot(1,2,2)

plt.title('enhanced image') # 设置标题

plt.imshow(im) # 显示裁剪后的图片

plt.axis('off') # 不显示坐标轴

plt.show() # 显示图片框

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值