打開Halcon自帶的threshold例程
main程序如下
read_image (Audi2, 'audi2') fill_interlace (Audi2, ImageFilled, 'odd') threshold (ImageFilled, Region, 0, 90) connection (Region, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, 'width', 'and', 30, 70) select_shape (SelectedRegions, Letters, 'height', 'and', 60, 110) dev_clear_window () dev_set_colored (12) dev_display (ImageFilled) dev_display (Letters)
read_image (Audi2, 'audi2')//讀入一副圖像
fill_interlace (Audi2, ImageFilled, 'odd')//處理一下顯得清晰
threshold (ImageFilled, Region, 0, 90)
這個算子是把灰度值在0-90作為一個區域Region(下圖的紅色部分),其他灰度值的作為一個區域,即灰度圖像的二值化
connection (Region, ConnectedRegions)
這個算子是把紅色區域分成不同的連通域ConnectedRegions,ConnectedRegions是很多個0-90灰度值區域的集合。
select_shape (ConnectedRegions, SelectedRegions, 'width', 'and', 30, 70)在ConnectedRegions集合中選擇長度在30-70之間的區域放到這個區域集合中SelectedRegions
select_shape (SelectedRegions, Letters, 'height', 'and', 60, 110)在SelectedRegions集合中選擇高度在60-110之間的區域放到Letters的集合中
dev_clear_window ()//清空窗體
dev_set_colored (12)
dev_display (ImageFilled)//顯示原圖像
dev_display (Letters)//選擇Letters區域集合,Letters區域集合就是我們最終感興趣的車牌號圖像區域
threshold 閾值算子取值可以通過灰度直方圖中調整灰度值的范圍,快速找到我們感興趣的區域
select_shape 算子可以用特征直方圖調整效果,快速找到我們感興趣的區域