基於BayerRGB圖像的邊緣檢測方法
2023-05-21 04:59:31 2
專利名稱:基於Bayer RGB圖像的邊緣檢測方法
技術領域:
本發明涉及圖像處理領域,尤其涉及一種基於拜爾域三基色(Bayer RGB)圖像的邊緣檢測方法。
背景技術:
圖像處理的基本目的包括產生更適合人觀察和識別的圖像或產生能由計算機自動識別和理解的圖像。
由於光的漫反射,鏡頭,像素串擾等原因,CMOS圖像傳感器獲取的圖像會比較模糊,直接影響輸出圖像的觀感。因此需要對輸出圖像進行圖像處理,圖像邊緣檢測和提取作為一種主要圖像處理技術,廣泛應用於CMOS圖像傳感器的圖像處理晶片中。
邊緣是圖像中最基本的視覺特徵,是圖像處理最重要的內容之一。所謂邊緣是指其周圍的像素灰度有階躍變化或屋頂變化的那些像素的集合。邊緣反映的是灰度的不連續性,經典的邊緣提取方法是考察圖像的每個像素在某個鄰域內的灰度變化,利用邊緣附近一階或二階方向導數的變化規律,判斷像素是否是邊緣點,這種方法稱為邊緣檢測局部算子法。
參考圖1,示出了階躍邊緣的示意圖,其中x,y為圖像的坐標,F(x,y)為各坐標點對應的灰度函數,如圖1所示,階躍邊緣灰度值在虛線a所示位置處,變化較大。參考圖2,示出了圖1所示階躍邊緣沿Y方向的示意圖,如圖2所示,在虛線a所示位置,F(x,y)從一個低灰度值跳變至一個較高的灰度值。參考圖3,示出了圖2所示階躍邊緣灰度函數的一階導數示意圖,如圖3所示,在虛線a所示位置處,階躍邊緣一階導數具有極大值,虛線a所示位置為邊緣位置,因此,可通過灰度函數一階導數的極大值來判斷邊緣位置。
現有技術中,邊緣檢測算子是判斷邊緣位置的方法之一,具體地,首先,通過邊緣檢測算子獲得圖像灰度梯度;然後,通過雙閾值方法判斷是否為邊緣。
其中,所述邊緣檢測算子包括Roberts算子、Prewitt算子、Sobel算子、Krisch算子等。
圖4,示出了Sobel算子的兩個卷積核。在應用Sobel算子進行邊緣檢測時,圖像中的每個像素點都用這兩個卷積核進行卷積運算,以獲得每個像素點的灰度梯度。其中,一個核對應於垂直方向的梯度,另一個核則對應於水平方向梯度。
現有技術的邊緣檢測建立於灰度變化的不連續性,其針對的對象是實際可見的彩色圖像,即每個像素點已經包含了RGB三種顏色信息,即紅(R)、綠(G)、藍(B)三色信息。現有技術進行邊緣檢測時,需要先把像素點的RGB值按照Y=0.299*R+0.587*G+0.144*B的關係式轉化為灰度值,然後再進行灰度值的梯度計算,進一步進行邊緣檢測。
但是,CMOS圖像傳感器輸出的是Bayer RGB圖像。在所述Bayer RGB圖像中,每個像素點只包含單色信息(紅、綠或藍)。如果採用現有技術邊緣檢測方法,為了獲得各像素點的灰度值,需要先對Bayer RGB圖像的單色信息通過插補技術進行拓展,以得到三色信息,再根據三色信息和Y=0.299*R+0.587*G+0.144*B得到像素的灰度值。
以Sobel算子為例,應用Sobel算子需要3×3的灰度值陣列,因此需要先對Bayer RGB圖像各像素點補充完整的顏色信息,再計算灰度值,這需要額外的硬體才能完成,從而增大了CMOS圖像傳感器成本。
發明內容
本發明解決的是改善基於Bayer RGB圖像進行邊緣檢測的成本較高的問題。
為解決上述問題,本發明提供一種基於Bayer RGB圖像的邊緣檢測方法,包括對目標像素點為中心的同色像素陣列進行梯度計算,得到目標像素點的垂直方向梯度和水平方向梯度的梯度絕對值和;分別計算目標像素點相鄰像素點的梯度絕對值和;根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點。
可選的,在對目標像素點邊緣檢測前,先確定高閾值和低閾值。
可選的,在對目標像素點邊緣檢測前,先確定各顏色像素點對應的高閾值和低閾值。
可選的,所述確定各顏色像素點對應的高閾值和低閾值的步驟包括根據CMOS圖像傳感器各顏色通道的噪聲情況,獲得各顏色通道噪聲水平估計值;由所述噪聲水平估計值獲得各顏色像素點對應的高閾值和低閾值。
可選的,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和大於高閾值,則所述目標像素點為邊緣點。
可選的,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和小於低閾值,則所述目標像素點為非邊緣點。
可選的,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰的像素點的梯度絕對值和中至少有一個大於高閾值,則所述目標像素點為邊緣點。
可選的,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰的像素點的梯度絕對值和中大於低閾值的數目大於預設數目,則所述目標像素點為邊緣點。
可選的,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰的像素點的梯度絕對值和中大於低閾值的數目小於或等於預設數目,則所述目標像素點為非邊緣點。
可選的,預設數目為目標像素點相鄰像素點個數的一半。
可選的,對目標像素點為中心的同色像素陣列進行梯度計算的步驟通過邊緣檢測算子完成。
可選的,所述邊緣檢測算子為Sobel算子。
與現有技術相比,本發明具有以下優點直接在Bayer RGB圖像格式上進行邊緣檢測,不需要額外的硬體進行邊緣檢測,因此使用本發明提供的基於Bayer RGB的邊緣檢測方法簡便易行硬體成本低; 另外,本發明提供的基於Bayer RGB的邊緣檢測方法中考慮了噪聲因素,檢測結果比較準確。
圖1是階躍邊緣的示意圖; 圖2是圖1所示階躍邊緣沿Y方向的示意圖; 圖3是圖2所示階躍邊緣的一階導數示意圖; 圖4是Sobel算子的兩個卷積核; 圖5是本發明基於Bayer RGB圖像的邊緣檢測方法一實施方式的流程圖; 圖6是確定高閾值、低閾值方法一實施方式的流程圖; 圖7是Bayer RGB圖像的像素分布示意圖; 圖8是應用Sobel算子的示意圖。
具體實施例方式 為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖對本發明的具體實施方式
做詳細的說明。
現有技術基於Bayer RGB圖像進行邊緣檢測時,需要對Bayer RGB圖像進行拓展,補充完整各像素點的顏色信息,並通過個像素點的顏色信息獲得灰度值,這需要額外的硬體才能完成,因此現有技術Bayer RGB圖像進行邊緣檢測的成本較高。
針對上述問題,本發明提供一種基於Bayer RGB圖像的邊緣檢測方法,參考圖5,示出了本發明基於Bayer RGB圖像的邊緣檢測方法一實施方式的流程圖,所述方法包括 步驟s1,選取以目標像素點為中心的同色像素陣列; 步驟s2,利用檢測算子對所述同色像素陣列進行梯度計算,獲得垂直方向梯度和水平方向梯度的梯度絕對值和; 步驟s3,按照相同的方法分別得到與目標像素點相鄰像素點的梯度絕對值和; 步驟s4,若目標像素點的梯度絕對值和大於高閾值,則判定所述目標像素點為邊緣點; 步驟s5,若目標像素點的梯度絕對值和小於低閾值,則判定所述目標像素點為非邊緣點; 步驟s6,若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰像素點的梯度絕對值和中至少有一個大於高閾值,則判定所述目標像素點為邊緣點; 步驟s7,若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰像素點的梯度絕對值和中大於低閾值的數目大於預設數目,則判定述目標像素點為邊緣點; 步驟s8,若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰像素點的梯度絕對值和中大於低閾值的數目小於或等於預設數目,則判定所述目標像素點為非邊緣點。
通過上述方法,可以確定單個像素點的邊緣信息,進而也可採用相同的方式檢測Bayer RGB圖像其他像素點的邊緣信息。在所述方法中,直接在BayerRGB圖像格式上進行邊緣檢測,無需要再進行像素信息拓展和灰度值計算,即不需要額外的硬體進行邊緣檢測,成本低。
需要說明的是,為了能夠對同色像素陣列應用檢測算子,以獲取灰度梯度,需根據檢測算子進行選取以目標象素點為中心的同色像素陣列,例如檢測算子為3×3的陣列,則選取3×3的以目標象素點為中心的同色像素陣列;檢測算子為5×5的陣列,則選取5×5的以目標象素點為中心的同色像素陣列。
上述方法中,在對目標像素點進行邊緣檢測前,需要先確高閾值和低閾值。設計人發現現有技術確定高、低閾值的方法過於籠統、簡單,會導致檢測精度較低。設計人對確定高、低閾值的方法做出進一步改進。
為了達到較高的檢測精度,本發明還提供一種確定高閾值、低閾值的方法。在上述邊緣檢測方法中,需要利用檢測算子對所述同色像素陣列進行梯度計算,也就是說,進行梯度計算的是來自傳感器同一顏色通道的數據。事實上,CMOS圖像傳感器中各顏色通道的增益水平不同,從而各顏色通道的噪聲水平不同,所述噪聲水平為噪聲分布函數的標準偏差值。在確定高閾值、低閾值時,需考慮到噪聲水平的影響。
具體地,參考圖6,示出了確定高閾值、低閾值的方法的流程圖。所述確定高閾值、低閾值的方法,包括首先,根據CMOS圖像傳感器各顏色通道的噪聲情況,獲得各顏色通道噪聲水平估計值;其次,由所述噪聲水平估計值獲得各顏色像素點對應的高閾值和低閾值。
本發明提供的確定高閾值、低閾值的方法,結合了噪聲因素,並且針對各個顏色的像素點分別給出了閾值,因此本發明提供的方法更加細緻,檢測出結果更加精確。
為了進一步闡述本發明的實質及其優點,下面結合具體實施例進行說明。
參考圖7,示出了Bayer RGB圖像的像素分布示意圖。在進行邊緣檢測之前,先確定出高閾值和低閾值,在本實施例中採用現有的雙閾值方法,所述雙閾值方法通過灰度梯度的高閾值、低閾值判斷邊緣點,具體地,如果像素的灰度梯度大於高閾值,則所述像素是邊緣;如果像素灰度梯度低於低閾值,則所述像素不是邊緣。以TH_high、TH_low分別代表高閾值、低閾值。
如圖7所示,Bayer RGB圖像中位於(0,0)點的為一紅色像素點R,以位於(0,0)點的R像素點作為目標像素點。
本實施例以Sobel算子為例,則選取3×3的以(0,0)點的R像素點為中心的同色像素陣列,如圖7所示,以黑色邊框示出了所選取的同色像素陣列。
以Sobel算子為例,對以(0,0)點的R目標像素點為中心的同色像素陣列進行梯度計算。參考圖8,示出了所述同色像素陣列應用Sobel算子的示意圖,如圖8所示,對所述同色像素陣列進行卷積計算,分別獲得垂直方向梯度(Grads_vertical)和水平方向梯度和(Grads_horizontal),之後計算垂直方向梯度和水平方向梯度的梯度絕對值和,以Grads(0,0)表示(0,0)點R像素點的梯度絕對值和,則梯度絕對值和的計算公式如下 Grads(0,0)=|Grads_vertical|+|Grads_horizontal| 計算與目標像素點相鄰的8個像素點B(-1,-1)、Gb(-1,0)、B(-1,1)、Gr(0,-1)、Gr(0,1)、B(1,-1)、Gb(1,0)、B(1,-1)的梯度絕對值和,分別表示為Grads(-1,-1)、Grads(-1,0)、Grads(-1,1)、Grads(0,-1)、Grads(0,1)、Grads(1,-1)、Grads(1,0)、Grads(1,1)。
如果Grads(0,0)大於高閾值(TH_high),那麼(0,0)點為邊緣點; 如果Grads(0,0)小於低閾值(TH_low),則判定所述目標像素點為非邊緣點; 如果Grads(0,0)小於高閾值(TH_high),且大於低閾值(TH_low),並且Grads(-1,-1)、Grads(-1,0)、Grads(-1,1)、Grads(0,-1)、Grads(0,1)、Grads(1,-1)、Grads(1,0)、Grads(1,1)中至少有一個大於高閾值(TH_high),那麼(0,0)點為邊緣點; 如果Grads(0,0)小於高閾值(TH_high_r),且大於低閾值(TH_low),並且Grads(-1,-1)、Grads(-1,0)、Grads(-1,1)、Grads(0,-1)、Grads(0,1)、Grads(1,-1)、Grads(1,0)、Grads(1,1)中大於低閾值(TH_low)數目大於預設數目,則判定所述目標像素點為邊緣點。
如果Grads(0,0)小於高閾值(TH_high),且大於低閾值(TH_low),並且Grads(-1,-1)、Grads(-1,0)、Grads(-1,1)、Grads(0,-1)、Grads(0,1)、Grads(1,-1)、Grads(1,0)、Grads(1,1)中大於低閾值(TH_low)數目小於或等於預設數目,則判定所述目標像素點為非邊緣點。
預設數目越高,則邊緣檢測精度要求越高,但容易造成實際的邊緣點未確定為邊緣點。為了平衡噪聲對邊緣檢測的影響和精度的要求,較佳地,一般預設數目設置為目標像素點相鄰像素點個數的一半,在本實施例中預設數目為4。
按照同樣的方法,對圖7所示Bayer RGB圖像中的其它像素點進行邊緣檢測,從而得到完整的邊緣圖像。
為了使得邊緣檢測結果更加精確,下面提供本發明基於Bayer RGB圖像的邊緣檢測方法一優化實施例。在本優化實施例中,先根據各顏色通道噪聲水平估計值獲得各顏色像素點對應得的高閾值、低閾值。
具體地,根據紅色通道的噪聲水平估計值(noise_level_r)來確定紅色像素點R對應的高閾值TH_high_r、低閾值TH_low_r;根據藍色通道的噪聲水平估計值(noise_level_b)確定藍色像素點B對應的高閾值TH_high_b、低閾值TH_low_b;根據Gb通道的噪聲水平估計值(noise_level_gb)來確定Gb像素點對應的高閾值TH_high_gb、低閾值TH_low_gb;根據Gr通道的噪聲水平估計值(noise_level_gr)來確定Gr像素點對應的高閾值TH_high_gr、低閾值TH_low_gr。其中,噪聲水平估計值和高閾值、低閾值的關係式包括 TH_high_r=α·noise_level_r; TH_low_r=β·noise_level_r; TH_high_b=α·noise_level_b; TH_low_b=β·noise_level_b;...公式1 TH_high_gb=α·noise_leve_gb; TH_low_gb=β·noise_level_gb; TH_high_gr=α·noise_level 其中,α、β常數為經驗參數,如果α、β常數取值較低時,會有非邊緣點確定為邊緣點,這會造成邊緣檢測的誤差較大;而α、β常數取值較高時,則會造成實際的邊緣點未確定為邊緣點。因此上述關係式中的α、β常數可根據噪聲類型,選取合適的參數值。
在本優化實施例中,進行目標像素點是否為邊緣點的判斷時,均結合各顏色像素點對應的高閾值、低閾值進行判斷,例如,如圖7所示(0,0)點為紅色像素點R,那麼比較Grads(0,0)是否大於高閾值時,以紅色像素點對應的高閾值TH_highr進行比較;(1,1)點為藍色像素點B;那麼比較Grads(1,1)是否大於低閾值時,以藍色像素點對應的抵閾值TH_low_b進行比較。以此類推,不做贅述。
需要說明的是,上述實施例中的Bayer RGB圖像的(0,0)點為紅色像素點,本發明並不限定Bayer RGB圖像的像素點分布,本發明中Bayer RGB圖像的(0,0)點還可以是其它顏色的像素點,例如藍色像素點等。
需要說明的是,上述實施例雖然以Sobel檢測算子為例,但是本發明並不限制檢測算子的種類,本發明還可以是其它檢測算子,例如Roberts算子、Prewitt算子、Krisch算子等。本領域技術人員可以根據上述實施例對本發明進行修改和變形。
綜上,本發明提供的基於Bayer RGB的邊緣檢測方法,直接在Bayer RGB圖像格式上進行邊緣檢測,無需補充完整各像素點的顏色信息,再計算灰度值,即不需要額外的硬體進行邊緣檢測,因此使用本發明提供的基於BayerRGB的邊緣檢測方法簡便易行硬體成本低,此外,本發明提供的基於BayerRGB的邊緣檢測方法中考慮了噪聲因素,檢測結果比較準確。
本發明雖然以較佳實施例公開如上,但其並不是用來限定權利要求,任何本鄰域技術人員在不脫離本發明的精神和範圍內,都可以做出可能的變動和修改,因此本發明的保護範圍應當以本發明權利要求所界定的範圍為準。
權利要求
1.一種基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,包括
對目標像素點為中心的同色像素陣列進行梯度計算,得到目標像素點的垂直方向梯度和水平方向梯度的梯度絕對值和;
分別計算目標像素點相鄰像素點的梯度絕對值和;
根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點。
2.如權利要求1所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,在對目標像素點邊緣檢測前,先確定高閾值和低閾值。
3.如權利要求2所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,在對目標像素點邊緣檢測前,先確定各顏色像素點對應的高閾值和低閾值。
4.如權利要求3所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,所述確定各顏色像素點對應的高閾值和低閾值的步驟包括根據CMOS圖像傳感器各顏色通道的噪聲情況,獲得各顏色通道噪聲水平估計值;由所述噪聲水平估計值獲得各顏色像素點對應的高閾值和低閾值。
5.如權利要求2所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和大於高閾值,則所述目標像素點為邊緣點。
6.如權利要求2所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和小於低閾值,則所述目標像素點為非邊緣點。
7.如權利要求2所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰的像素點的梯度絕對值和中至少有一個大於高閾值,則所述目標像素點為邊緣點。
8.如權利要求2所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰的像素點的梯度絕對值和中大於低閾值的數目大於預設數目,則所述目標像素點為邊緣點。
9.如權利要求2所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,所述根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點的步驟包括若目標像素點的梯度絕對值和小於高閾值,且大於低閾值,並且與目標像素點相鄰的像素點的梯度絕對值和中大於低閾值的數目小於或等於預設數目,則所述目標像素點為非邊緣點。
10.如權利要求8或9所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,預設數目為目標像素點相鄰像素點個數的一半。
11.如權利要求1所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,對目標像素點為中心的同色像素陣列進行梯度計算的步驟通過邊緣檢測算子完成。
12.如權利要求11所述的基於Bayer RGB圖像的邊緣檢測方法,其特徵在於,所述邊緣檢測算子為Sobel算子。
全文摘要
一種基於Bayer RGB圖像的邊緣檢測方法,包括對目標像素點為中心的同色像素陣列進行梯度計算,得到目標像素點的垂直方向梯度和水平方向梯度的梯度絕對值和;分別計算目標像素點相鄰像素點的梯度絕對值和;根據目標像素點及其相鄰像素點的梯度絕對值和與高閾值和低閾值的比較關係,判斷目標像素點是否為邊緣點。所述方法直接在Bayer RGB圖像格式上進行邊緣檢測,不需要額外的硬體進行邊緣檢測,因此使用本發明提供的基於Bayer RGB的邊緣檢測方法簡便易行硬體成本低。
文檔編號G06T7/00GK101770646SQ20101012522
公開日2010年7月7日 申請日期2010年2月25日 優先權日2010年2月25日
發明者董德興, 任曉慧 申請人:崑山銳芯微電子有限公司