車牌傾斜矯正

2021-08-16 21:30:21 字數 1526 閱讀 7828

在車牌識別系統中, 車牌字元能夠正確分割的前提是車牌影象能夠水平,以至於水平投影和垂直投影能夠正常進行。如果車牌傾斜沒有矯正,那麼水平投影和垂直投影,甚至鉚釘都無法正常處理。所以,當車輛資訊中獲取車牌的第一步,應該是檢查傾斜角度,做傾斜矯正。

1、傾斜角度檢測: 霍夫變換

2、傾斜矯正: 影象旋轉

1、提取車牌整體資料, 根據第一步結果,提取出,車牌在輛大體位置資訊。

關於車牌定位,我使用兩部,第一步粗略定位,然後做一些預處理,比如傾斜矯正,然後第二部才是精確定位,只提取車牌的位置資訊影象

2、利用hsv顏色空間轉換,獲取車牌背景藍色區域位置,獲取車牌粗略資訊影象後,由於車牌背景顏色與周圍顏色有很明顯的區別,這裡採用hsv顏色過濾的方法,過濾綠色背景影象

3、水平膨脹, 水平膨脹的目的,是為了邊緣檢測,只要求檢測邊緣,盡量除去字元資訊,也可以降低hough變換的運算量

4、水平差分運算,相當於 邊緣檢測,經過上面的處理後,才進行邊緣檢測

5、這個時候就可以利用hough變換檢測直線了。

由於hough變換運算量十分大,所以,儘量減少影象中的白點,來降低計算量

下圖的紅線,就是檢測出來的角度,為177度

6、利用旋轉演算法,旋轉剛才粗略提取的車牌位置,儘管旋轉後的車牌有些鋸齒,但是已經能夠保證水平,就可以使用水平投影和垂直投影了

這是旋轉後的車牌,有些鋸齒出現,由於影象解析度較低,就沒有用差值運算。

7、精確提取車牌

8、正常分割字元

9、識別結果

由於正弦余弦運算,計算量比較大,這裡進行一部分優化,就是正弦余弦計算用陣列代替。

生成正弦,余弦陣列的的**如下

#include 

#include 

#include 

#include 

intmain(

void

)    

i = 0;  

for(i = 0; i <= 180; i++)  

for(i = 0; i <= 180; i++)  

fclose(fcos);  

fclose(fsin);  

return

0;  

}  

matlab 實現車牌的傾斜校正

clear,clc,close all fn,pn,fi uigetfile jpg bmp 選擇 i imread e picture 12.jpg figure,imshow i title 原始影象 bw rgb2gray i bw im2bw i,graythresh bw bw doubl...

手寫數字識別系統之傾斜矯正

傾斜校正主要有兩種,一種是整體傾斜校正,另一種是區域性傾斜校正。由於本文主要研究具有不規則分布的多數字識別,因此只需要關注經過提取後的數字校正問題,也就是影象的區域性校正。目前的校正演算法有很多,比如說 對於整體傾斜校正可以採用統計影象左右兩邊的平均畫素高度,通過計算整體傾斜度來進行校正。這種方法對...

手寫數字識別系統之傾斜矯正

傾斜校正主要有兩種,一種是整體傾斜校正,另一種是區域性傾斜校正。由於本文主要研究具有不規則分布的多數字識別,因此只需要關注經過提取後的數字校正問題,也就是影象的區域性校正。目前的校正演算法有很多,比如說 對於整體傾斜校正可以採用統計影象左右兩邊的平均畫素高度,通過計算整體傾斜度來進行校正。這種方法對...