?(本系列只需要modelsim即可完成數字圖像的處理,每個工程都搭建了全自動化的仿真環境,只需要雙擊top_tb.bat文件就可以完成整個的仿真,大大降低了初學者的門檻!!!!如需要該系列的工程文件請關注知識星球:成工fpga,https://t.zsxq.com/DMeqH,關注即送200GB學習資料,鏈接已置頂!)
上篇我們完成了車牌邊界的定位和車牌字符區域的定位,然后我們就要開始對車牌上的每個字符進行定位。按照如下圖片的講解,字符區域的定位也需要預處理,首先取圖片的R通道,然后進行二值化,再進行腐蝕和膨脹,預處理完畢的圖片就可以進行每個字符上下左右邊界的定位了。
上篇我們已經完成了車牌整個字符區域的定位,那我們只對該區域的圖片進行處理即可,外圍的圖片忽略即可。所以在\src\char_segmentation文件夾上新建limit_char_area.sv文件,更加上篇實現的車牌字符區域的信息,只選擇車牌字符區域內的圖片,外圍的圖片直接給零值即可,如下65-72行的模塊實現了該功能。
然后對車牌字符區域的圖像進行預處理即可,主要完成R通道的二值化,腐蝕和膨脹。如下例化了plate_location,limit_char_area,binary,erosion,dilation等模塊。這個可以通過控制img_sel參數選擇不同模塊圖像的輸出,由于一幀圖像只能選擇一個參數值,所以如果要保存五幅圖像,就要處理五幀圖像。
在tb_image_sim文件中,初始化了關聯數組car和style。
在下一個initial塊中,分別將預處理的五幀圖片進行保存。這兒有一點需要注意,216行是對隊列進行清空的操作,否則圖片數據會繼續往后存儲,那保存的五幅圖片都是R通道的圖片。
雙擊sim文件夾下的top_tb.bat文件,完成系統的自動化仿真。
因為要處理五幅圖像,處理時間較長,modelsim的Transcript有如下的打印信息。
最后我們打開img/output文件夾,就可以看到預處理每一步的處理結果。
當然大家也可以修改car_index選擇不同的值重新進行仿真,比如car_index=17重新進行仿真,img/output文件夾下的圖片如下。這幅圖片處理的就不太干凈,還有一下多余的信息,有可能會影響后續的處理結果。