pillow學習3

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)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17840.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17840.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17840.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在flutter initState 方法,觸發 setState導致循環執行

在Flutter中,如果你在initState中調用了一個方法,并且這個方法可能導致狀態更新,這可能會引起無限循環,因為每次狀態更新都會再次調用initState。 為了避免這種情況,你應該檢查調用的方法是否會導致狀態更新&#xff…

圖算法新書發布會圓滿成功,大咖現場都講了啥?

5月24日,嬴圖與機工社攜手舉辦的“《圖算法:行業應用與實踐》新書發布會”圓滿成功。 現場直播在線觀眾達4000人/次左右,點贊數量超7000,直至發布會尾聲,觀看人數仍在持續增長。 通過觀眾們的反饋,我們也對…

Matplotlib 實踐指南:圖形樣式、風格與標記探索

目錄 前言 第一點:導入模塊 第二點:創建二維圖 第三點:創建統計圖 總結 前言 Matplotlib 是一個強大的數據可視化庫,可用于創建各種類型的圖形。在本文中,我們將研究如何在 Matplotlib 中設置圖形的顏色、風格和標記…

【LeetCode算法】第88題:合并兩個有序數組

目錄 一、題目描述 二、初次解答 三、官方解法 四、總結 一、題目描述 二、初次解答 1. 思路:首次想到的解法:定義一個mn長度的輔助數組,從頭遍歷這兩個數組,誰小就放進輔助數組中并且對應往后走,最后使用memcpy函…

巧用java8的stream流的.collect(Collectors.toMap(arg1,arg2))

最近公司接手了一個低代碼二次開發平臺的需求,需要連接多張表的數據然后展示到界面上。 按照java的sql思路,我們直接通過left join去關聯表就行了,但是該低代碼平臺有對sql連表查詢有限制,就是有些表它是存在一個domainKey的&…

HotSpot虛擬機的幾個實現細節

文章目錄 STW安全點安全區域記憶集與卡表讀寫屏障 STW 收集器在根節點枚舉這步都是必須要暫停用戶線程的( STW ),如果不這樣的話在根節點枚舉的過程中由于引用關系在不斷變化,分析的結果就不準確 安全點 收集器在工作的時候某些…

切勿安裝這五款流氓軟件,你中招了沒

流氓軟件,又稱為惡意軟件,是一類設計用來損害用戶設備、竊取信息或干擾正常使用的程序。以下是五款臭名昭著的流氓軟件介紹,提醒切勿安裝,只能說一個比一個毒,你中招了沒 可以去去虛擬機試試誰的毒更強一些&#xff0…

高工咨詢:《2024中國人形機器人產業發展藍皮書》

高工咨詢所發布的《2024中國人形機器人產業發展藍皮書》全面梳理了人形機器人產業的發展現狀、政策環境、資本市場、技術發展、市場前景以及面臨的機遇與挑戰等情況。 人形機器人是當今世界科技領域最具潛力和前景的產業之一。隨著科技的不斷進步和人 工智能技術的快速發展&…

基于jeecgboot-vue3的Flowable增加表單功能(二)

因為這個項目license問題無法開源,更多技術支持與服務請加入我的知識星球。 接上一節 6、增加一個types.ts 類型 export interface FormForm {id: number | string | undefined;formName: string;formContent?: string;remark: string; } 7、api增加一個getForm…

Github Page 部署失敗

添加 .gitmodules 文件 [submodule "themes/ayer"]path themes/ayerurl https://github.com/Shen-Yu/hexo-theme-ayer.git 添加 .nojekyll 文件

React Fiber

React引入Fiber前后的區別: 渲染流程的控制: 之前:在Fiber之前,React的渲染過程是一個相對線性的深度優先遍歷過程,從根節點開始遍歷整個組件樹,這個過程一旦開始就無法中斷,直到完成。如果遇到…

滾珠花鍵在工業自動化領域中有什么優勢?

滾珠花鍵是工業自動化設備中重要的傳動系統之一,不僅在工業自動化系統中有著廣泛的運用,還在機械制造領域、航空航天領域、工業汽車領域、工業機器人、高速鐵路、新能源領域 等都得到廣泛應用。由于具有高精度、高承載、耐磨損、傳遞扭矩大等特點&#x…

android 關于自定義View在特殊情況下觸發setPressed方法(View源碼解析)

文章目錄 前言一、為什么樣式會變?二、調試發現原因并解決1.找到原因2.解決 總結 前言 最近在負責一些UI相關的工作,測試給到一個UI的bug,說是搜索框在點擊的時候,旁邊的’‘X’變成按壓的效果了,我轉手就把bug轉給負責公控的同事了,因為這個搜索框是公控同事提供的…

Mysql常用操作DDL數據庫、表操作:

SQl DDl-數據庫操作 查詢 查詢所有數據庫 show databases; 查詢當前數據庫 select database(); 創建 create database [if not exists] 數據庫名 [default charset 字符集] [collate 排序規則]; 刪除 drop database[if exists] 數據庫名; 使用 use 數據庫名;…

K8s集群中的Pod調度約束親和性與反親和性

前言 在 K8s 集群管理中,Pod 的調度約束——親和性(Affinity)與反親和性(Anti-Affinity)這兩種機制允許管理員精細控制 Pod 在集群內的分布方式,以適應多樣化的業務需求和運維策略。本篇將介紹 K8s 集群中…

運維開發詳解:現代IT環境的核心角色

隨著信息技術的快速發展和互聯網應用的廣泛普及,運維開發(DevOps)在現代IT環境中扮演著越來越重要的角色。本文將詳細探討運維開發的概念、歷史背景、關鍵實踐、工具和未來趨勢,旨在為讀者提供全面的理解。 什么是運維開發&#…

labview類編程

1.父類的功能是通用功能,所有子類都含有父類的功能,重寫會自動執行一次父類的功能。 2.每個子類都用了父類的注冊vi,所以在調用的時候,出來的就是子類注冊的vi,也就是window.vi。 3.假如要設計一個父類的vi,首先是保存…

手持高速暴力風扇方案32位單片機

RAMSUN一款低成本的暴力無刷風扇方案,集成無刷電機驅動、電池低壓保護等功能的同時,保持較低的待機功耗。 手持高速暴力風扇主控芯片MM32SPIN080C高性能的單電機控制 SOC 產品,集成了運動控制所需的專用模擬外設。包括 12 位高精度 ADC、2 路模擬比較器…

Mac 系統 clion 使用 getline 無法讀取文件內容

不知道是 mac 的問題還是 clion 的問題&#xff0c;如下面代碼 #include <iostream> #include <fstream>using namespace std;int main() {string file_name "1.txt";std::ifstream file(file_name);if (file.is_open()) {std::string line;while (std…

airtest做web端UI自動化實戰

安裝 官網下載客戶端 airtest庫安裝 pip install airtest pip install pocoui腳本錄制 利用airtest客戶端錄制腳本 web端輔助插件-selenium windows打開: 設置chrome路徑 開始調式錄制 腳本運行 # -*- coding: utf-8 -*- """ Time &#xff1a; 2024/5/…