halcon第五讲:车牌识别

玩转车牌识别,灵活运用Blob分析,颜色空间转换,形状转换,放射变换等等识别车牌号码。
原图如下:


image.png
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image, '1.jpg')
invert_image (Image, ImageInvert)

*拆分3通道并转换为hsv空间
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')

*利用饱和度图像进行二值化和特征选择
threshold (Saturation, Regions, 15, 50)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['area','row'], 'and', [80,135.73], [195.9,168.38])

*联合连通域形成一个区域,并用一个带方向的矩形进行形状转换
union1 (SelectedRegions, RegionUnion)
shape_trans (RegionUnion, RegionTrans, 'rectangle2')

*做仿射变化(校正)
orientation_region (RegionTrans, Phi)
area_center (RegionTrans, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column,0, HomMat2D)
affine_trans_image (Image, ImageAffinTrans, HomMat2D, 'constant', 'false')
affine_trans_region (RegionTrans, RegionAffineTrans, HomMat2D, 'nearest_neighbor')

*用校正的区域去校正的原图中抠图,扣出车牌区域
reduce_domain (ImageAffinTrans, RegionAffineTrans, ImageReduced)
rgb1_to_gray (ImageReduced, GrayImage)
threshold (GrayImage, Regions1, 77, 252)
connection (Regions1, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 63.76, 500)

sort_region (SelectedRegions1, SortedRegions, 'character', 'true', 'column')

*读取模型并识别显示
read_ocr_class_mlp ('Industrial_0-9A-Z_NoRej.omc', OCRHandle)
do_ocr_multi_class_mlp (SortedRegions, ImageInvert, OCRHandle, Class, Confidence)
dev_display (Image)
disp_message (WindowHandle, Class, 'window', 0, 0, 'black', 'true')

识别结果如下:


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容