Pillow库中,图像的模式代表了图像的颜色空间。以下是一些常见的图像模式及其含义:
L(灰度图):L模式表示图像是灰度图像,每个像素用8位表示(范围为0-255),0表示黑色,255表示白色。
RGB:RGB模式表示图像是真彩色图像,每个像素由红(R)、绿(G)、蓝(B)三种颜色通道组成,每个通道占据8位,共24位表示一个像素的颜色。
CMYK:CMYK模式表示图像是使用青色(Cyan)、品红(Magenta)、黄色(Yellow)、黑色(Key/Keyline)四种油墨颜色的印刷图像,主要用于打印
from PIL import Image
img1=Image.open('blend1.jpg')
img2=Image.open('blend2.jpg')
img2=img2.resize(img1.size)
r1,g1,b1= img1.split()
r2,g2,b2= img2.split()#进行色道的分离
tmp=[r1,g2,b1]#用img2的绿色通道代替img1的绿色通道
img = Image.merge("RGB",tmp)#其中 mode 指输出图像的模式,bands 波段通道,一个序列包含单个带图通道。
img.show()
图片合并
滤镜
在 Pillow 库中的 Image 模块中,使用函数 filter()可以对指定的图片使用滤镜效果,在
Pillow 库中可以用的滤镜保存在 ImageFilter 模块中。
Image.filter(filter)
通过函数 filter(),可以使用给定的滤镜过虑指定的图像,参数“filter”表示滤镜内核。
from PIL import Image,ImageFilter
#使用函数 filter()实现滤镜效果
img=Image.open('bjsxt.png')
b=img.filter(ImageFilter.GaussianBlur)
b.show()
GaussianBlur(高斯模糊):
作用:高斯模糊是一种基于正态分布的模糊滤镜,用于平滑图像,减少噪点和细节。
参数:
radius:模糊的半径,值越大,模糊效果越明显。
应用场景:用于减小图像噪声、平滑图像或为其他滤镜操作做预处理。
UnsharpMask(不清晰的掩模滤镜):
作用:不清晰的掩模实际上是用于增强图像的边缘细节,通过先进行模糊处理再进行锐化来实现。
参数:
radius:模糊半径,用于模糊处理,值越大,影响范围越广。
percent:增强的强度,百分比值,决定了锐化的强度。
threshold:阈值,决定只有在像素强度差异超过此值时才进行锐化处理。
应用场景:用于图像锐化和增强细节,使图像看起来更加清晰。
MinFilter(最小值滤波):
作用:最小值滤波器会用滤波窗口内的最小值替换中心像素值,主要用于减少图像中的盐噪声(白点噪声)。
参数:
size:滤波器的大小(例如3表示3x3的窗口)。
应用场景:用于去除图像中的极端亮点,平滑图像。
MedianFilter(中值滤波):
作用:中值滤波器会用滤波窗口内的中值替换中心像素值,主要用于去除椒盐噪声。
参数:
size:滤波器的大小(例如3表示3x3的窗口)。
应用场景:用于去除图像中的噪声,特别是椒盐噪声,同时尽量保留边缘细节。
ModeFilter(模式滤波):
作用:模式滤波器会用滤波窗口内的众数(出现次数最多的值)替换中心像素值,用于减少随机噪声。
参数:
size:滤波器的大小(例如3表示3x3的窗口)。
应用场景:用于去除图像中的随机噪声,特别是图像中有大量重复元素时效果较好。
主要区别总结:
GaussianBlur:平滑整个图像,减少细节和噪声。
UnsharpMask:增强图像细节,通过模糊和锐化组合实现。
MinFilter:用窗口内的最小值替换中心像素,去除图像中的盐噪声。
MedianFilter:用窗口内的中值替换中心像素,去除图像中的椒盐噪声。
ModeFilter:用窗口内的众数替换中心像素,减少随机噪声。
每种滤波器有其特定的用途和效果,可以根据图像处理的需求选择合适的滤波器。
高斯模糊 (GaussianBlur):
图像整体变得更加平滑,细节被模糊掉,有助于减少噪声。
不清晰的掩模滤镜 (UnsharpMask):
图像的细节被增强,边缘变得更加清晰,整体显得更加锐利。
最小值滤波 (MinFilter):
图像中亮点被削弱,减少了极端亮点的影响,整体变得较暗。
中值滤波 (MedianFilter):
图像中的噪声,特别是椒盐噪声被有效去除,保留了边缘细节。
模式滤波 (ModeFilter):
图像中的随机噪声被减少,平滑了图像,同时保留了一些重复的元素。
高斯噪声(Gaussian Noise):
特点:高斯噪声的像素值变化符合高斯分布(正态分布),即大部分噪声值集中在平均值附近,随着离平均值越远的概率越小。
来源:通常来自电子设备的热噪声或传感器的随机波动。
表现:图像上会有较为均匀的亮度变化,但没有明显的斑点。
椒盐噪声(Salt-and-Pepper Noise):
特点:椒盐噪声表现为图像中的随机白色(盐)和黑色(胡椒)点。
来源:传感器故障、传输错误或数字图像处理中的不准确操作。
表现:图像上有明显的黑白斑点,非常显眼。
泊松噪声(Poisson Noise):
特点:泊松噪声(也称为光子噪声)与图像信号强度成比例,通常在光子计数过程中产生。
来源:摄影过程中由于光子的统计波动导致的噪声。
表现:图像亮度越高的地方噪声越明显。
散斑噪声(Speckle Noise):
特点:散斑噪声是一种相干噪声,通常在激光、雷达和超声波成像中出现。
来源:相干光束干涉造成的图像强度波动。
表现:图像看起来像覆盖了一层细小的斑点。
1.目视检查
直接观察图像:
高斯噪声:图像整体看起来有轻微的模糊,亮度和颜色有细微变化。
椒盐噪声:图像中出现明显的黑白斑点。
泊松噪声:通常在低光图像中,亮度较高区域出现随机斑点。
散斑噪声:图像看起来像覆盖了一层斑点,尤其是在相干成像系统中(如雷达、超声波成像)。
2. 直方图分析
观察图像的灰度直方图:
高斯噪声:直方图会有广泛的分布,集中在中心,但有宽的尾部。
椒盐噪声:直方图会在极值处(0和255)出现尖峰。
泊松噪声:直方图显示随亮度变化的不同程度的分布,特别是在低亮度区域。
散斑噪声:直方图会显示出更复杂的分布,取决于图像内容和噪声性质。
3. 统计分析
计算图像的统计特性:
均值和方差:高噪声图像的方差通常较大。
信噪比(SNR):较低的SNR表示较高的噪声水平。
4. 频域分析
傅里叶变换:
将图像转换到频域,通过观察频谱图判断噪声。
高斯噪声:频谱图中有较为均匀的高频分量。
椒盐噪声:频谱图中有较高的随机高频分量。
散斑噪声:频谱图中有特定的条纹或斑点模式。
5. 滤波器响应
应用滤波器并观察效果:
高斯模糊:应用后,如果图像变得更平滑且噪声减少,可能存在高斯噪声。
中值滤波:应用后,如果图像斑点减少,说明存在椒盐噪声。
ImageChops 模块
在 Pillow 库的内置模块 ImageChops 中包含了多个用于实现图片合成的函数。这些合成
功能是通过计算通道中像素值的方式来实现的。其主要用于制作特效、合成图片等操作。
常用的内置函数如下所示:
ImageChops.add(image1,image2,scale = 1.0,offset = 0 )
输出值为
out = ((image1 + image2) / scale + offset)