本文詳細介紹了多種圖像處理技術,包括RG/GB單通道提取、亮度和對比度調整、圖像反轉、均值濾波、高斯濾波、圖像銳化、中值濾波、閾值分割、邊緣檢測(Sobel算子)、圖像膨脹與腐蝕、開運算與閉運算、Tophat形態學濾波、RAW8轉RGB888、彩色圖像均值濾波、Alpha背景疊加、直方圖灰度拉伸算法以及自動白平衡算法。每種算法都提供了實現方法和相關公式,涵蓋了圖像處理的核心概念和技術。
1、RG/GB單通道提取,采用2x2陣列
其實現方法,用ram緩存兩行圖像數據,對緩存的數據進行間隔4個數據讀取,以此一個固定的數據替換其余三個顏色值
2、亮度增加
其公式為:
Q = a * i + b
其中i為輸入原像素值,a為調節對比度,b為調節亮度
實現方法為:只需將原像素值加上需要增加亮度的值即可(注:不要溢出)
3、對比度增加
其公式為:
Q = a * i +b
其中i為輸入原像素值,a為調節對比度,b為調節亮度
實現方法:只需將原像素值乘上對比度值即可(注:不要溢出)
4、圖像反轉
其公式為:
Q = 255 - i;
其中i為原像素值
實現方法:將圖像值的最大值減去原像素值
5、均值濾波
采用的3x3矩陣,先緩存三行圖像數據,在對數據進行相加,取均值
其除法部分可以轉化移位運算:
實現過程:
1024 / 9 = 113;
則可以讓其矩陣取和值乘以113,在進行右移10位,則得出需要均值
6、高斯濾波
實現方法:
對所有的權值乘以1024,在將權值與矩陣像素相乘并累加和,并在按照10249=113的原理,讓其和乘以113,在對其值進行右移20位,則該值就是要求的最終值
7、圖像銳化
圖像銳化,采用的是拉普拉斯算子,其算子模板如下:
采用第二個算子模板,其實現方法如下:
其實現方法:將算子模塊中的值分成兩部分,一部分是正值,另一部分是負值, 1、在將正值和負值進行比較,如果正值大于負值,則正值減去負值,在與p(4)像素加
2、在將正值和負值進行比較,如果正值小于負值,則負值減去正值,在p(4)像素值減去該值
8、中值濾波
其模型如下:
其實現方法:
設置9個cnt值做排序標識,讓矩陣中的值對另外8個值進行比較,其中標識值為4的,就代表其值為中間值
9、閾值分割
其公式如下:
設置閥值區間,當在這個閥值區間內,則該像素值轉化為0輸出,不在這個閥值區間內的像素則輸出255或其他定義的值
10、邊緣檢測(sobel)
其sobel算子3x3模型如下:
公式部分補充:
得到gxy值后,根據設置的閥值,當大于該閥值,則該像素輸出為16’01,否則為8’hff,將像素二值化
其實現過程:
1、將模板Gx分為正值和負值累加,當正值大于負值時,則正值減去負值,否則是負值減去正值
2、同理模板Gy也是如此,然后在得出的值分別進行平方,在進行累加求和
3、最后對該值進行開平方(開平方可用cordic算法轉化sqrt,也可以調用ip核)
4、得到開平方的值進行與閥值比較,將像素二值化
11、圖像膨脹
在sobel檢測之下,其公式:
求像素的最大值,進行輸出
其矩陣模型為3x3
實現方法:
設置9個cnt值做排序標識,讓矩陣中的值對另外8個值進行比較,其中標識值為8的,就代表其值為最大值
12、圖像腐蝕
在sobel檢測之下,其公式為:
求像素的最大值,進行輸出
其矩陣模型為3x3
實現方法:
設置9個cnt值做排序標識,讓矩陣中的值對另外8個值進行比較,其中標識值為0的,就代表其值為最小值
13、開運算
其原理過程是先腐蝕后膨脹的過程,其公式:
其實現過程:
在矩陣3x3中:
1、先進行緩存3行像素點(640)
2、在對3行像素點安順序各取三個值進行取最小值輸出像素
3、將輸出最小值的像素在進行緩存3行(640)
4、在對這3行像素點安順序各取三個值,進行取最大值,輸出像素值,則該算法完成
14、閉運算
其原理過程是先膨脹后腐蝕的過程,其公式:
其實現過程:
在矩陣3x3中:
5、先進行緩存3行像素點(640)
6、在對3行像素點安順序各取三個值進行取最大值輸出像素
7、將輸出最大值的像素在進行緩存3行(640)
8、在對這3行像素點安順序各取三個值,進行取最小值,輸出像素值,則該算法完成
15、Tophat 形態學濾波
其公式為:
矩陣為:3x3
其工作原理是,先對3x3像素矩陣進行開運算,比較值取p(4),當p(4)>=open(p(i))時,則Gxy = p(4) - open(p(i)),否則Gxy = 0 或者其他定義值
16、RAW8轉RGB888
選取矩陣:2x2
Cmos像機結構:GB/RG
以G2為基準點,則該公式為:
則實現方法:
1、先緩存2行數據(640)
2、各讀取2個數據
3、對值進行分配為:
偶數行偶數列、偶數行奇數列、奇數行偶數列、奇數行奇數列
4、輸出各組8位顏色
17、彩色圖形進行均值濾波
矩陣:3x3
先將RAW8轉RGB888三原色輸出,然后在對其每個原色進行緩存3行,在進行取和輸出,該和值乘(1024/9)113值,最后將該值進行右移10位,則是最終像素輸出
18、Alpha 背景疊加
其效果實現是出現背景半透明狀態
公式為:
19、直方圖灰度拉伸算法
矩陣:2x2
實現方法:
緩存2個小于255的數,為最小值;緩存2個大于0的數為最大值;進行比較,用最大值減去最小值。做為查找表的標號;255/(B-A)部分做成查找表e
最后g(x,y)= e * (f(x,y)-min值)
20、白/晚自動曝光與增益算法
21、自動白平衡算法
百平衡算法有:灰度世界法、完美反射法、動態閥值法
現實現方法為:灰度世界法
原理:灰度世界法(Gray World)是以灰度世界的假設為基礎的,假設一張圖片具有大量的色彩變化,RGB 三分量的平均值趨于同一個灰度值 K。下面給出 K 的計算方法。
則公式為:
實現思路:
1、由于MT9V011攝像機有4個通道,將一幀的圖像數據按照奇偶行列將4個通道進行分配累加取和
2、在對4個通道的數據進行取平均值,并且要除以4,每個通道的數據占一幀圖像的四分之一
3、在將4個通道的數據累加取和,并對其進行取平均值K
4、將4個通道的數據,都進行取倒數的查找表s
5、輸出最終值:
R = R(原)ks
G= G(原)ks
B = B(原)ks
原文:
https://blog.csdn.net/qq_39633876
-
FPGA
+關注
關注
1631文章
21806瀏覽量
606600 -
圖像處理
+關注
關注
27文章
1306瀏覽量
56933 -
算法
+關注
關注
23文章
4632瀏覽量
93456
原文標題:FPGA圖像處理算法整合
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論