【圖像處理與機器視覺】灰度變化與空間濾波

基礎

空間域與變換域

空間域:認為是圖像本身,對于空間域的操作就是對圖像中的像素直接進行修改
變換域:變換系數處理,不直接對于圖像的像素進行處理

鄰域

圖像中某點的鄰域被認為是包含該點的小區域,也被稱為窗口

空間濾波

鄰域選擇空間域中的一小塊區域,對于鄰域中的像素運用算子T,并在該位置產生一個輸出;隨后將鄰域的原點移動到下一個位置,并且重復前面的過程,生成下一個位置的值,當鄰域的大小為1*1的時候,輸出像素只取決于輸入像素,而與周邊像素無關

灰度變換函數

(1)反轉變換:s = (L-1) - r
r為輸入圖像像素,s為輸出圖像像素,[0,L-1]為圖像的灰度集
作用:使黑白反轉
(2)對數變換: s = c log ? ( 1 + r ) s= c\log(1+r) s=clog(1+r)
c為常數,r>=0,使用對數變換可以讓原圖的灰度進行壓縮,避免超出設備的限制,如圖所示,將較低的灰度提高到了中間,同理還有其他變換函數也能起到相同或者相反的作用
在這里插入圖片描述
(3)冪變換: s = c ? r γ s=c\cdot r^\gamma s=c?rγ
gamma小于1的時候,提高了灰度級,gamma大于1時,降低了灰度級
(記住圖片就好)
在這里插入圖片描述

直方圖處理(重要)

對于一個灰度級范圍為[0,L-1]的數字圖像,其直方圖表示為 h ( r k ) = n k h(r_k) = n_k h(rk?)=nk?,其中rk代表著第k級灰度,nk是圖像中處在該灰度級的像素個數
歸一化: p ( r k ) = h ( r k ) / M N p(r_k)=h(r_k)/MN p(rk?)=h(rk?)/MN
p是灰度級在圖像中出現的概率估計,所有分量加起來之和為1
在這里插入圖片描述
從左至右分別為暗圖片,兩圖片,低對比度圖片,高對比度圖片

直方圖均衡

目的就是將聚集在一起的灰度值變得“平坦”得分布在所有灰度級上,從最終結果上來說可以認為增加了對比度,同時將過亮或者過暗的圖片調整正常。
這里我們不對于直方圖均衡的具體原理進行細究,如想了解清楚請查看此處:直方圖均衡化原理
理想情況下,均衡后的連續函數會使所有灰度級的概率密度全部相等
在這里插入圖片描述
以下為實際遇到時的處理:
(這里也可以跳轉我之前做過的直方圖均衡/匹配實驗,內含matlab代碼:https://blog.csdn.net/weixin_46876169/article/details/137008120?spm=1001.2014.3001.5501)
e.g.一幅圖大小為64*64,其灰度級范圍為[0,7],歸一化的灰度分布如下表所示:
在這里插入圖片描述
直方圖均衡變換函數為: s k = T ( r k ) = ( L ? 1 ) ∑ j = 0 k p r ( r j ) s_k = T(r_k)=(L-1)\sum\limits_{j=0}^kp_r(r_j) sk?=T(rk?)=(L?1)j=0k?pr?(rj?)
可以計算得到: s 0 = 7 × p r ( r 0 ) = 7 ? 0.19 = 1.33 s_0 = 7 \times p_r(r_0) = 7 \cdot 0.19 = 1.33 s0?=7×pr?(r0?)=7?0.19=1.33 s 1 = 7 p r ( r 0 ) + 7 p r ( r 1 ) = 3.08 s_1= 7p_r(r_0) + 7p_r(r_1) = 3.08 s1?=7pr?(r0?)+7pr?(r1?)=3.08,同樣有s2=4.55,s3=5.67,s4=6.23,s5=6.65,s6=6.86,s7=7.00
將這些小數進行取整到最近的整數:
在這里插入圖片描述
通過這一組式子,我們可以得到映射關系,原本灰度級為0的像素映射到1,灰度級為1的像素映射到3,其他類似
在這里插入圖片描述
我們可以發現,均衡后的直方圖在亮度上整體有了提高,同時盡可能均勻的平鋪在所有灰度級中

直方圖匹配

有時候直方圖均衡處理完的圖片并不滿足我們需要的效果,比如對于上圖我們只想提高亮度,而不想提高其對比度,那么通過直方圖均衡這樣的方法就沒法做到。此時我們可以選取一張我們希望的亮度與對比度的圖片,使用直方圖匹配的方法來將原直方圖變為我們需要的樣子。
這里我們仍然忽略繁雜的理論推導,直接來看一看具體的例子,假設變換對象仍然為原來的圖片,新的參考圖的直方圖給在了圖中:
在這里插入圖片描述
(1)對于原圖與參考圖均進行直方圖均衡:
在這里插入圖片描述
在這里插入圖片描述
將s的值與G(z)的值相對應,每個s取最接近的G(z)值,當s離兩個G(z)值一樣接近時,取較小的那個,最終可以得到s對應z的映射,再加上原本r到s的映射,最終就能得到r到z的映射
在這里插入圖片描述
在這里插入圖片描述
如此就可以得到目標的直方圖,需要注意的是,映射完后原圖的直方圖各灰度級概率密度并不與目標圖完全一致,而是指分布一致
在這里插入圖片描述

空間濾波

濾波是指通過或拒絕一定范圍內的頻率分量,例如能夠通過低頻分量的濾波器叫做低通濾波器,最終效果可以對一幅圖片進行模糊處理。
根據執行的操作可以分為:線性空間濾波器和非線性空間濾波器去
對于一個窗口為3x3的濾波器,其輸出為各位置上的系數與對應像素值的乘積之和
如果期望圖像中的像素變化為以該像素為中心的3x3鄰域的平均灰度,可以使用 R = 1 9 ∑ i = 1 9 z i R = \frac{1}{9}\sum\limits_{i=1}^9z_i R=91?i=19?zi?

平滑空間濾波

平滑濾波用于模糊處理和降低噪聲
模糊處理經常用于預處理任務,可以去除圖像中的一些噪聲

平滑線性濾波器

可以歸入低通濾波器,主要作用是降低噪聲,去除圖像中的不相關細節,但也可能導致邊緣模糊或者由于灰度級數量不足導致的偽輪廓
在這里插入圖片描述
加權平均濾波:
在這里插入圖片描述

非線性濾波器

統計排序濾波器是一種非線性濾波器,通過濾波器中包圍的圖像中所含像素的排序來決定中心像素的值
例如:中值濾波器,將濾波器內灰度的中值代替濾波器中心的值,此外除了取中值,還可以取最大值(最大值濾波器),最小值(最小值濾波器)
中值濾波器對于處理脈沖噪聲(椒鹽噪聲)非常有效

銳化空間濾波器

對于一階微分和二階微分的定義:
一階微分:(1)在恒定區域為0(2)在斜坡或臺階的起點處非0(3)在斜坡上非0
二階微分:(1)在恒定區域為0(2)在臺階或斜坡的起點處非0(3)在斜坡上為0
在這里插入圖片描述

使用拉普拉斯算子進行圖像銳化

拉普拉斯算子是一種各向同性微分算子,這種濾波器的響應與其以何方向作用在圖像上無關。
對于兩個變量的拉普拉斯算子,
? 2 f = ? 2 f ? x 2 + ? 2 f ? y 2 \nabla^2f=\frac{\partial^2f}{\partial x^2}+\frac{\partial^2f}{\partial y^2} ?2f=?x2?2f?+?y2?2f?
將其以離散的形式表述,我們就可以得到:
在這里插入圖片描述
對于y也是同理:
在這里插入圖片描述
故最終可以得到:
在這里插入圖片描述
需要注意的是,拉普拉斯算子所產生的是一種濾波,可以認為是一種濾鏡,和原圖進行疊加才能起到相應的作用:

當拉普拉斯算子的中心常數為負時,c=-1,否則c=1

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

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

相關文章

在IDEA中使用Git在將多次commit合并為一次commit

案例: 我想要將master分支中的 測試一、測試二、測試三三次commit合并為一次commit 1. 點擊Git 2. 雙擊點擊commit所在的分支 3. 右鍵要合并的多個commit中的第一次提交的commit 4. 點擊右鍵后彈出的菜單中的Interactively Rebase From Here選項 5. 點擊測試二…

常用Linux命令的具體使用示例

文件操作類: ls -l: 列出當前目錄下所有文件和目錄的詳細信息。cd /home: 切換到/home目錄。pwd: 顯示當前工作目錄的完整路徑。cp source.txt destination.txt: 將source.txt文件復制到destination.txt。mv oldname.txt newname.txt: 將文件oldname.txt重命名為ne…

MySQL排序操作

025排序操作 select .. from .. order by 字段 asc/descselect empno, ename, sal from emp order by sal asc;asc 不寫的話,默認升序 多個字段排序 查詢員工的編號、姓名、薪資,按照薪資升序排列,如果薪資相同的,再按照姓名升…

二叉樹的順序結構(堆的實現)

前言 普通的二叉樹是不適合用數組來存儲的,因為可能會存在大量的空間浪費。而完全二叉樹更適合使用順序結 構存儲。 現實中我們通常把堆 ( 一種二叉樹 ) 使用順序結構的數組來存儲,需要注意的是這里的堆和操作系統 虛擬進程地址空間中的堆是兩回事&…

問題:8255A的端口A工作在方式2時,使用端口C的______作為與CPU和外部設備的聯絡信號。 #媒體#經驗分享#其他

問題:8255A的端口A工作在方式2時,使用端口C的______作為與CPU和外部設備的聯絡信號。 參考答案如圖所示

郵件安全證書,保障通信安全的必備利器

在數字通信日益普及的今天,電子郵件的安全性越來越受到人們的關注。郵件安全證書,作為保障郵件通信安全的重要工具,逐漸走進了大眾的視野。本文將為大家揭秘郵件安全證書,解答關于它的常見問題,幫助大家更好地了解和使…

學習好困-合理調整下

學習時感到困倦是一種常見現象,可能由多種因素引起,如環境、身體狀況、學習方法等。以下是一些原因及其解決方法: 可能的原因 環境因素: - 光線不足:昏暗的環境容易讓人感到疲倦。 - 空氣不流通:缺乏…

浮點數的精度和精度丟失,如何規避,有簡單操作

在日常工作中,如果做財務軟件相關肯定會遇到這種問題,憑證金額表面上看是相等的,但程序運算出的結果卻是FALSE。 例如:驗證憑證金額借方總金額是否等于貸方總金額? 直接sum(借方分錄金額1.1借方分錄金額2.…

RK3568技術筆記之一 RK3568總體介紹

RK3568是瑞芯微開發出一款很好用的芯片。我先把ROCKCHIP的原廠信息搬過來看看。 首先聲明一下,這篇文章里的資訊版權歸瑞芯微電子股份有限公司。畢竟是我轉過來的嘛。 我自己的心得,版權就歸我啦。 主要特性 Quad-core Cortex-A55 up to 2.0GHzMali-G…

認識HTTP狀態碼(status code)

目錄 1、200 OK(訪問成功)👇 2、404 Not Found (沒有找到資源)👇 3、403 Forbidden (訪問拒絕)👇 4、405 Method Not Allowed👇 6、504 Gateway Timeout…

CV Method:經典CNN Backbone總結

文章目錄 前言一、ResNet二、ResNeXt三、Res2Net四、SeNet五、ResNeSt六、DenseNet七、CSPNetPytorch Model Code總結 前言 Backbone作為一切深度學習任務的基礎,不論是理論還是實際應用都有重要的意義,本文針對經典Backbone進行總結,這些Ba…

[word] word怎樣轉換成pdf #職場發展#經驗分享#職場發展

word怎樣轉換成pdf word怎樣轉換成pdf?word格式是辦公中常會用到的格式,word格式編輯好了要想轉換成pdf格式再來傳輸的話需要怎么操作呢?小編這就給大家分享下操作方法,一起來學習下吧! 1、安裝得力PDF轉換器&#x…

【stm32/CubeMX、HAL庫】swjtu嵌入式實驗七 ADC 實驗

相關電路與IO引腳 注意&#xff1a;串口打印重定向后使用printf打印需要在keil里勾選 Use MicroLIB &#xff0c;否則會卡住。 參看&#xff1a;https://zhuanlan.zhihu.com/p/565613666 串口重定向&#xff1a; /* USER CODE BEGIN Includes */#include <stdio.h>//…

銳捷校園網自助服務系統 login_judge.jsf 任意文件讀取漏洞復現(XVE-2024-2116)

0x01 產品簡介 銳捷校園網自助服務系統是銳捷網絡推出的一款面向學校和校園網絡管理的解決方案。該系統旨在提供便捷的網絡自助服務,使學生、教職員工和網絡管理員能夠更好地管理和利用校園網絡資源。 0x02 漏洞概述 校園網自助服務系統/selfservice/selfservice/module/sc…

求解數組中N數之和最接近目標值的算法詳解

目錄 問題定義問題背景常見解決思路 暴力枚舉法排序雙指針法動態規劃法 具體實現方法 暴力枚舉法的實現排序雙指針法的實現動態規劃法的實現 優化技巧總結 問題定義 給定一個整數數組 nums 和一個目標值 target&#xff0c;需要在數組中找到 n 個數&#xff0c;使得這 n 個數…

apollo 環境配置

輸入法 安裝輸入google pinyin法 sudo apt install fcitx-bin sudo apt install fcitx-table sudo apt-get install fcitx fcitx-googlepinyin -y 最后需要reboot 系統環境 修改文件夾名稱為英文 將Ubuntu主文件夾里的中文文件夾名稱改成英文_番茄炒雞蛋z的博客-CSDN博客…

selenium中switch_to.window切換窗口的用法

打開百度多個窗口&#xff0c;遍歷切換每個窗口&#xff0c;切到【百度地圖】就停止。 使用了driver.switch_to.window&#xff08;&#xff09; 來切換&#xff0c; 參數是handle值 from selenium import webdriver import time# 創建瀏覽器驅動對象 from selenium.webdrive…

JSQLParser用于解析SQL語句并創建抽象語法樹(AST)

JSQLParser簡介 JSQLParser是一個Java庫&#xff0c;用于解析SQL語句并創建抽象語法樹(AST)。該庫非常強大&#xff0c;可以解析大多數標準SQL語法&#xff0c;并支持許多數據庫的專用語法。 主要特點 語法支持廣泛&#xff1a;支持大多數SQL語法&#xff0c;包括SELECT、IN…

java中事務中遇到鎖會造成什么問題,以及該如何解決?

在spring中實現事務有多種方式&#xff0c;主要是兩種&#xff1a;一種是聲明式事務&#xff0c;一種是編程式事務&#xff0c;今天我們就講聲明式事務中的一種&#xff0c;使用注解Transactional&#xff0c;這個注解的作用就是幫助我們在代碼執行完畢之后自動提交事務&#x…

淘寶評論數據爬取全攻略

一、淘寶評論數據爬取的背景與意義 隨著互聯網的快速發展&#xff0c;電子商務平臺如淘寶、京東等在我國市場占有率逐年上升。消費者在購買商品時&#xff0c;除了關注商品的價格、質量等因素外&#xff0c;還會參考其他消費者的評價和評論。淘寶評論數據爬取是指通過技術手段…