python:Image模块

本文详细介绍了Python中PIL库与NumPy库在图像处理中的应用,包括图像的导入、显示、保存、格式转换、增强、滤波等操作。通过具体实例展示了如何使用这些库进行图像的亮度调整、色彩增强、对比度调节、锐度提升以及各种滤波效果。

导入模块

from PIL import Image
import numpy as np
from PIL import ImageEnhance # 图像增强
from PIL import ImageFilter # 图像滤波

Image方法

方法作用实例
open()打开一个图像文件img=Image.open(‘image.jpg’)
fromarray()将numpy数组转化为图片new_img=Image.fromarray(img_arr)
new_img=Image.fromarray(np.unit8(img_arr))
new(mode,size,color)创建新图片newImg = Image.new(“RGBA”,(640,480),(0,255,0))
blend()两张图片相加Image.blend(img1,img2,alpha)
# 这里alpha表示img1和img2的比例参数

img方法

方法作用实例
show()显示这张图片img.show()
save()存储图片new_img.save(‘newimagr.png’)
format图像格式img.format
mode图像类型img.mode
L为灰度图,RGB为真彩色,RGBA含有透明度通道
size返回的是图像的宽高(w,h),不包含通道img.size
ROI数组的切片操作roi = img[100:300,30:350,:]
split()通道分离r,g,b=im.split()
#分割成三个通道,此时r,g,b分别为三个图像对象
merge()通道合并im=Image.merge(“RGB”,(b,g,r))
#将b,r两个通道进行翻转
getbands()生成通道列表img_bands=img.getbands()
getpixel()图像点的像素值img.getpixel((0,0))
putpixel()写某个像素位置的值img.putpixel((4,4),(255,0,0))
resize()图像缩放img.resize((h,w),Image.ANTIALIAS)
Image.NEAREST :低质量
Image.BILINEAR:双线性
Image.BICUBIC :三次样条插值
Image.ANTIALIAS:高质量
rotate()图像旋转img.rotate(90)
transpose()图像翻转img.transpose(Image.FLIP_TOP_BOTTOM)#上下翻转
img.transpose(Image.FLIP_LEFT_RIGHT)#左右翻转
img.transpose(Image.ROTATE_180)
point()点操作out=im.point(lambdai:i*1.5)
#对每个点进行50%的加强
crop()图片裁剪region=im.crop((100,100,500,500))
#此时,region是一个新的图像对象
paste()图像黏贴(合并)im.paste(region,box)
#粘贴box大小的region到原先的图片对象中
convert()图像类型转换im=im.convert(“RGBA”)

np方法

方法作用实例
array()
asarray()
将图片转化成numpy数组img_arr=np.array(img)

ImageEnhance方法

方法作用实例
Brightness()亮度ImageEnhance.Brightness(img).enhance(3)
Color()色度ImageEnhance.Color(img).enhance(2)
Contrast()对比度ImageEnhance.Contrast(img).enhance(3)
Sharpness()锐度ImageEnhance.Sharpness(img).enhance(2)

ImageFilter方法

类型实例
模糊滤波img_blur = img.filter(ImageFilter.BLUR)
轮廓滤波img_contour = img.filter(ImageFilter.CONTOUR)
细节滤波img_detail = img.filter(ImageFilter.DETAIL)
边界增强滤波img_edge_enhance = img.filter(ImageFilter.EDGE_ENHANCE)
锐化滤波img_sharp = img.filter(ImageFilter.SHARPEN)
高斯模糊滤波img_gauss = img.filter(ImageFilter.GaussianBlur(radius=2))
# radius指定平滑半径,也就是模糊的程度。

图像模式

模式描述
11位像素,表示黑和白,但是存储的时候每个像素存储为8bit。
L8位像素,表示黑和白。
P8位像素,使用调色板映射到其他模式。
RGB3x8位像素,为真彩色。
RGBA4x8位像素,有透明通道的真彩色。
CMYK4x8位像素,颜色分离。
YCbCr3x8位像素,彩色视频格式。
I32位整型像素。
F32位浮点型像素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值