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() # 显示图片框
作者:
tongqingliu
出处: http://www.cnblogs.com/liutongqing/
本文版权归作者和博客园共有,欢迎转载、交流,但未经作者同意必须保留此段声明,且在文章明显位置给出原文链接。
如果觉得本文对您有益,欢迎点赞、欢迎打赏。
出处: http://www.cnblogs.com/liutongqing/
本文版权归作者和博客园共有,欢迎转载、交流,但未经作者同意必须保留此段声明,且在文章明显位置给出原文链接。
如果觉得本文对您有益,欢迎点赞、欢迎打赏。
posted on 2017-05-22 21:16 tongqingliu 阅读(521) 评论(0) 编辑 收藏 举报