打开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 算子可以用特征直方图调整效果,快速找到我们感兴趣的区域