python 包之 Pillow 图像处理教程
发布网友
发布时间:2024-10-03 21:26
我来回答
共1个回答
热心网友
时间:2024-10-05 10:41
一、安装
利用pip安装Pillow包:pip install Pillow
二、打开图片
使用Image类加载图片:from PIL import Image; img = Image.open('path/to/image.jpg');
三、转换格式并保存
将图片转换为其他格式并保存:img.save('new_image.png');
四、创建缩略图
生成缩略图:img.thumbnail((128, 128), Image.ANTIALIAS);
五、获取图片属性
获取图片尺寸:width, height = img.size;
获取图片模式:mode = img.mode;
获取图片数据:data = img.getdata();
六、图片信息
图片文件类型:img.format
图片文件大小:img.size
图片分辨率:img.info['dpi']
七、调色板
查看图片调色板:img.getpalette()
八、画板
在图片上绘制:img.paste((255, 0, 0), (x, y), mask)
九、图片模式
调整图片模式:img = img.convert('RGB');
十、模式转换
图片转灰度:img = img.convert('L');
十一、矩阵模式转换
矩阵转图片:new_img = Image.fromarray(np.uint8(matrix));
十二、图片尺寸
调整图片尺寸:img = img.resize((new_width, new_height), Image.ANTIALIAS);
十三、通道分离
分离图片通道:rgb = img.split();
十四、复制、裁剪、粘贴、合并
复制图片:new_img = img.copy();
裁剪图片:new_img = img.crop((x, y, x+w, y+h));
粘贴图片:new_img.paste(img, (x, y), mask)
合并图片:new_img = Image.blend(img1, img2, alpha);
十五、几何变换
旋转图片:new_img = img.rotate(degree, expand=True);
缩放图片:new_img = img.resize(size, resample=Image.NEAREST);
十六、高级图片处理
增强图片:new_img = img.filter(ImageFilter.BLUR);
十七、滤波器处理
应用滤波器:new_img = img.filter(ImageFilter.DETAIL);
十八、设置透明度合成两张图
合成两张图:new_img = Image.alpha_composite(img1, img2);
十九、设置模式合成两张图
模式合成两张图:new_img = Image.blend(img1, img2, alpha);
二十、草稿模式
使用草稿模式:img = img.copy(); img.paste(img, (x, y), mask);
二十一、获取通道名称
获取通道名称:channel_names = img.split()._getchannelnames();
二十二、获取包围盒
获取包围盒:box = img.getbbox();
二十三、获取像素值
获取像素值:rgb = img.getpixel((x, y));
二十四、获取图片极值
获取极值:min_value, max_value = img.getextrema();
二十五、指定位置像素值
指定位置像素值:new_img = img.putpixel((x, y), (new_r, new_g, new_b));
二十六、获取图像直方图
获取直方图:hist = img.histogram();
二十七、内存分配
内存分配:img = Image.new(mode, size);
二十八、查找指定的帧
查找帧:frame = img.tell();
二十九、获取当前帧位置
获取当前帧位置:current_position = img.tell();