原視頻教程:
https://www.bilibili.com/video/BV19x411X7k6?from=search&seid=9816644268076164289
一、影像顯示與儲存原理
1.1、影像怎么顯示
計算機視覺中,主要有RGB顏色空間與HSV顏色空間:
RGB:三個顏色通道(RGB),有時候有四個(ARGB)
HSV:三個通道(HSV),色調、飽和度、亮度
1.2、影像怎么儲存

二、影像增強的目標
改善視覺效果,轉為更適合人或者機器分析,突出有意義的東西,抑制無用資訊
空間域處理:點運算【直方圖】,形態學運算【膨脹,腐蝕】,臨域運算【卷積,金字塔】
頻率域處理:傅里葉變換,小波變換
三、點運算:基于直方圖的對比度增強
3.1 直方圖是什么
將某一張照片的像素灰度[0,255]全部找出來,并按照個數統計其分布,得到的統計曲線就是直方圖,如下圖
3.2 直方圖均衡化(經典方法)
如3.1圖,可以看出此時灰度分布不均勻,影像集中在了較暗的地方,這種情況大多數是因為相機的的成像、曝光等等有問題,可以通過直方圖均衡化來調整,對直方圖進行非線性拉伸,使得其大致均勻分布,注意通常為非線性拉伸,

3.3 自適應直方圖均衡化(AHE)
簡單地非線性拉伸直方圖成為直方圖均衡化的經典演算法,想象一下,當影像中存在過亮的情況,比如正對著光源拍攝,這種情況使用經典演算法,會導致亮的部分更亮,因此經典演算法作用有限,可以使用自適應直方圖均衡化,分為以下幾步:
1、設定一個模板,在原始圖片上滑動,步長固定;
2、在滑動的時候,對模板覆寫住的區域進行直方圖均衡的經典演算法,并對每個像素點進行結果賦值;
3、滑動結束后 ,每個像素點會有多個賦值,取多個賦值的均值為最終的結果,這個結果成為即為AHE得到的映射函式,
3.4 限制對比度自適應直方圖均衡(CLAHE) 沒搞懂
AHE有一個缺點,他在處理的時候,會將圖片噪聲放大,因此提出了CLAHE,大致程序為,在AHE的基礎之上,把左圖中超出閾值的部分整體拆分移動到底部,使得整個直方圖抬高,
簡單地進行上述移動還會帶來圖片不連續的問題,如相鄰兩個像素點差距過大,但是我不知道為什么,為了解決這個問題, 需要對AHE得到的映射函式稍微加工一下,如下圖2.
圖1:CLAHE示意圖

圖2:映射函式優化

四、形態學處理
膨脹與腐蝕
開運算:先腐蝕再膨脹,可以去掉目標外的孤立點
閉運算:先膨脹再腐蝕,可以去掉目標內的孔
開運算中:腐蝕后,五角星外的白點會被腐蝕消失,同時五角星會往外擴張一小圈;再膨脹的時候,五角星會碩訓原先的樣子,而白點已經消失了,

閉運算中:膨脹后,五角星內的黑點會因為邊緣的白色向其膨脹而消失;再腐蝕使得五角星和外部的白點恢復原樣,而黑點已經消失了,

五、空間域處理:卷積
卷積的時候如果不進行邊界擴充(Padding),那么卷積結果一定是比原來的圖片要小,如圖,用3 * 3的卷積核對4 * 4大小的圖片進行卷積,當不進行邊界擴充時候, 需要把卷積核邊緣同圖片邊緣對齊,得到的結果必定比原圖片小,

當進行邊界擴充時候,將卷積核中心與目標位置對齊,超出圖片的部分假定為某個值,使得卷積后的大小與原圖片保持一致,
邊界填充策略一般有:0,邊界值,鏡像,塊復制,補0用得最多,但在使用的時候需要避免大卷積核與小圖片的搭配——這樣在卷積的時候,邊界有很多本沒有的0加入運算,而中心位置沒有額外加入的0,導致中間和邊界的數值差距變大,會造成較大誤差,

當卷積核是對稱的時候,可以將卷積核拆解成 列*行 級聯的形式,然后對圖片先進行列卷積,再進行行卷積,得到的結果和直接卷積的結果是一樣的,這樣拆解的好處是降低了卷積運算的復雜度,由N2降為了2N(這里也沒搞懂),
魔鬼細節:卷積運算本身并不是矩陣相乘,而是對應位置直接相乘相加;而有時候,我們會把卷積核倒轉一下,或者設定對稱的卷積核,使其變成矩陣相乘,
六、卷積的應用(平滑、邊緣檢測、銳化)
1、平滑
以3*3的卷積核為例,每個位置相乘后應得到9個值,卷積是對這9個位置直接相加,濾波其實是根據這9個值,采用某種方法來計算結果,
| 濾波方法 | 卷積核 | 程序 | 評價 |
|---|---|---|---|
| 均值濾波 | 卷積核值全為1 | 對9個值取均值,作為該位置的結果 | 平均值會降低像素間區分度,不能很好地去噪,還破壞了細節 |
| 中值濾波 | 卷積核值全為1 | 對9個值取中值,作為該位置的結果 | 很好地去噪 |
| 高斯濾波 | 卷積核中心值大,邊緣小,所有值相加為1 | 對9個值相加,作為該位置的結果 | 把圖片變模糊 |
高斯濾波的有一個引數δ,這個引數代表了卷積核
看起來似乎沒什么用,把圖片變模糊算什么本事?在8.1中會有敘述,
2、邊緣檢測
| 濾波方法 | 卷積核 | 程序 | 評價 |
|---|---|---|---|
| 水平梯度濾波 | (-1,0,1) (-1,0,1) (-1,0,1) | 相乘相加 | 放大垂直邊緣差異,檢測垂直邊緣 |
| 垂直梯度濾波 | (-1,-1,-1) ( 0, 0, 0) ( 1, 1, 1) | 相乘相加 | 放大水平邊緣差異,檢測水平邊緣 |
| Sobel 梯度濾波 | (-1,-2,-1) ( 0, 0, 0) ( 1, 2, 1) | 相乘相加 | 基礎梯度濾波的改進版 |
| Laplacian 梯度濾波 | 中間大,四周小,相加等于0,如 ( 0, 1, 0) ( 1,-4, 1) ( 0, 1, 0) | 相乘相加 | 檢測變化明顯的地方,并且過濾平滑,用于細節銳化 |
3、銳化
Laplacian 梯度濾波示例

邊上黑色的區域十分平滑,基本保持某個灰度不變,在和為0的卷積核作用下,會變成0,達到了過濾平滑的效果,環形山部分尤其是環形山邊緣變化較明顯,在中心大的卷積核作用下,會凸顯出來,將卷積后的結果與原圖相加,平滑部分值為0不變,細節部分更加明顯,達到銳化效果,
七、頻率域處理:傅里葉變換,小波變換
1、如何讓卷積更快
空間域卷積 = 頻率域乘積(看不懂)
八、應用案例
1、高斯金字塔
在應用中,經常會遇到需要縮放圖片的情況,舉個例子:
將 128 * 128 的圖片縮放成 64 * 64,即長寬為 2 * 2 的每四個像素需要合并為一個新的像素,那么新的像素應該選用原先四個像素中的哪一個呢?或者說應該用什么方式來計算得出行的像素?
倘若直接取四個其中的某一個像素作為新像素,會導致縮小后的圖片相鄰像素間差距過大,圖片出現不連續的銳化情況;為解決這個問題,可以先對原先的四個像素進行高斯濾波,可以讓四個像素間更加平滑,之后可以任取一個作為新像素,也可以取四個像素點的平均值作為新的像素值,這個程序被稱為高斯金字塔,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291588.html
標籤:其他
