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)