图像基本处理(一)

图像基本处理(一)图像基本处理(一)图像基本处理(一)

感谢打开小白的文章

“希望看文章的你们今天进步了一点,离美好生活又近了一步!”图像基本处理(一)

内容

前言

库的安装

基础知识

图像的 RGB 色彩模式

像素阵列

图像打开

图像混合

蒙版混合

缩放像素

前言

Pillow 是 Python Imaging Library的简称,是 Python 语言中最为常用的图像处理库。Pillow 库提供了对 Python3 的支持,为 Python3 解释器提供了图像处理的功能。通过使用 Pillow 库, 可以方便地使用 Python 程序对图片进行处理,例如常见的尺寸、格式、色彩、旋转等处理。

Pillow 库是 Python 开发者最为常见的图像处理库,它提供了广泛的文件格式支持、强 大的图像处理能力,主要包括图像存储、图像显示、格式转换以及基本的图像处理操作等。

库的安装

pip 安装 pillow,执行如下命令 :

pip install pillow

基础知识

图像的 RGB 色彩模式

RGB 三个颜色通道的变化和叠加得到各种颜色,其中 – R 红色,取值范围,0-255 – G 绿色,取值范围,0-255 – B 蓝色,取值范围,0-255 比如,我们常见的黄色就是由红色和绿色叠加而来。

红色的 RGB 表示(255,0,0)

绿色的 RGB 表示(0,255,0)

蓝色的 RGB 表示(0,0,255)

黄色的 RGB 表示(255,255,0)

像素阵列

图像基本处理(一)

数字图像可以看成一个整数阵列,阵列中的元素称为像素(Pixel),见下图的数字阵列 每个点代表 1 个像素(Pixel),一个点包含 RGB 三种颜色。也就是 1 个像素包含 3 个字节的 信息:(R,G,B)。假如这个像素是红色,则信息是:(255,0,0)。那么,理论上我们只要 操作每个点上的这三个数字,就能实现任何的图形。一幅图像上的所有像素点的信息就完全 可以采用矩阵来表示,通过矩阵的运算实现更加复杂的操作

图像打开

from PIL import Image
#打开图片
img=Image.open('p1.jpg')
#显示图片
img.show()
print('图片的格式:',img.format)
print('图片的大小:',img.size)
print('图片的高度:',img.height,'图片的宽度:',img.width)
print('获取(100,100)处像素值:',img.getpixel((100,100)))

返回值可以是图片格式、大小、高度等。

图像基本处理(一)

图像混合

透明度混合处理在 Pillow 库的 Image 模块中,可以使用函数 blend()实现透明度混合处理。

具体语法格式为:

blend(im1,im2,alpha)

其中 im1、im2 指参与混合的图片 1 和图片 2,alpha 指混合透明度,取值是 0-1。 通过使用函数 blend(),可以将 im1 和 im2 这两幅图片(尺寸相同)以一定的透明度 进行混合。具体混合过程如下:

(im1*(1-alpha)+im2*alpha)

当混合透明度为 0 时,显示 im1 原图。当混合透明度 alpha 取值为 1 时,显im2原图片。

代码示例

from PIL import Image
img1=Image.open('p2.jpg').convert(mode='RGB')
img2=Image.new('RGB',img1.size,'red')
# img2.show()
Image.blend(img1,img2,alpha=0.5).show()

混红的结果:图像基本处理(一)

蒙版混合

在 Pillow 库中 Image 模块中,可以使用函数 composite()实现遮罩混合处理。

具体语法格式如下:

 composite(im1,im2,mask) 

其中 im1 和 im2 表示混合处理的图片 1 和图片 2.mask 也是一个图像,mode 可以为 “1”, “L”, or “RGBA”,并且大小要和 im1、im2 一样。 函数 composite()的功能是使用 mask 来混合图片 im1 和 im2,并且要求 mask、im1 和 im2 三幅图片的尺寸相同。下面的实例代码演示了使用 Image 模块实现图片遮罩混合处理的过程。

from PIL import Image
img1=Image.open('p4.jpg')
img2=Image.open('p3.jpg')
img2=img2.resize(img1.size)
r,g,b=img2.split()
Image.composite(img2,img1,r).show()

我们先来看看原图:

图像基本处理(一)

图像基本处理(一)

运行后显示结果:

图像基本处理(一)

缩放像素

在 Pillow 库的 Image 模块中,可以使用函数 eval()实现像素缩放处理,能够使用函 数 fun()计算输入图片的每个像素并返回。使用函数 eval()语法格式如下:

eval(image,fun) 

其中 image 表示输入的图片,fun 表示给输入图片的每个像素应用此函数,fun()函数 只允许接收一个整型参数。如果一个图片含有多个通道,则每个通道都会应用这函数。

from PIL import Image
#按像素缩放图片
img1= Image.open('p3.jpg')
img1.show()
#.将每个像素都扩大2倍
Image.eval(img1,lambda x:x*2).show()

#按尺寸进行缩放图片
#复制图片
img2=img1.copy()
print(img2.size)
img1.show()
img2.thumbnail((200,160))
img2.show()

运行结果对比:

图像基本处理(一)

公众号回复“图片处理”获取全部代码:

图像基本处理(一)

版权声明:本文为博主进步小白原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/am_student/article/details/122598766

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年2月17日 下午12:34
下一篇 2022年2月17日 下午3:11

相关推荐