python Image库操作

本文详细介绍使用Python进行图像处理的方法,包括图像的读取、显示、保存等基本操作,以及图像融合、点操作、裁剪、合并等高级技巧。此外还介绍了如何通过Python实现图像旋转、翻转及类型的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 首先需要导入需要的图像库:


import Image


2. 读取一张图片:


im=Image.open('/home/Picture/test.jpg')


3. 显示一张图片:


im.show()


4. 保存图片:


im.save("save.gif","GIF") #保存图像为gif格式


5. 创建新图片:


Image.new(mode,size)


Image.new(mode,size,color)


栗子:newImg = Image.new("RGBA",(640,480),(0,255,0))

newImg.save("newImg.png","PNG")


6.两张图片相加:


Image.blend(img1,img2,alpha) # 这里alpha表示img1和img2的比例参数


7. 点操作:


im.point(function) #,这个function接受一个参数,且对图片中的每一个点执行这个函数

比如:out=im.point(lambdai:i*1.5)#对每个点进行50%的加强


8. 查看图像信息:

im.format, im.size, im.mode


9. 图片裁剪:

box=(100,100,500,500)
#设置要裁剪的区域


region=im.crop(box) #此时,region是一个新的图像对象。



10. 图像黏贴(合并)


im.paste(region,box)#粘贴box大小的region到原先的图片对象中。


11. 通道分离:

r,g,b=im.split()#分割成三个通道,此时r,g,b分别为三个图像对象。


12. 通道合并:

im=Image.merge("RGB",(b,g,r))#将b,r两个通道进行翻转。


13. 改变图像的大小:

out=img.resize((128,128))#resize成128*128像素大小


14. 旋转图像:

out=img.rotate(45) #逆时针旋转45度

有更方便的:

region = region.transpose(Image.ROTATE_180)


15. 图像转换:

out = im.transpose(Image.FLIP_LEFT_RIGHT)
#左右对换。



out = im.transpose(Image.FLIP_TOP_BOTTOM)
#上下对换


16. 图像类型转换:

im=im.convert("RGBA")


17. 获取某个像素位置的值:

im.getpixel((4,4))


18. 写某个像素位置的值:

img.putpixel((4,4),(255,0,0))

### Python 中常用的图像处理 #### 1. Pillow (PIL Fork) Pillow 是 PIL 的一个活跃分支,继承了 PIL 的大部分特性并进行了改进。这个能够在所有主要操作系统上运行,并且支持 Python 3。它包含了基本的图像处理功能,比如点操作、使用一组内置卷积内核进行过滤以及颜色空间转换等功能[^1]。 ```python from PIL import Image, ImageFilter img = Image.open("example.jpg") blurred_img = img.filter(ImageFilter.BLUR) blurred_img.save("blurred_example.jpg") ``` #### 2. scikit-image scikit-image 是基于 SciPy 生态系统的图像处理,提供了广泛的算法用于图像处理和计算机视觉任务。此可以方便地与其他科学计算工具集成在一起工作[^4]。 ```python from skimage.io import imread, imshow from skimage.color import rgb2gray image = imread('path_to_image') imshow(rgb2gray(image)) ``` #### 3. OpenCV-Python OpenCV-Python 提供了大量的函数来进行实时计算机视觉应用开发。除了传统的图像处理外,还涵盖了特征检测、物体识别等多个领域内的高级技术。 ```python import cv2 img = cv2.imread('messi5.jpg',0) cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows() ``` #### 4. imageio imageio 主要专注于简化多媒体文件(尤其是图片序列)之间的输入/输出过程。通过简洁易懂 API 设计让用户更轻松地完成这项工作;同时也适用于视频流或从视频中抽取单帧画面的任务[^3]。 ```python import imageio.v2 as iio im = iio.imread('chelsea.png') print(im.shape) # Prints the shape of image array ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值