该例程目的是识别图中的车牌(汉字除外)
直接上代码
read_image (Image, 'C:/车牌2.png')
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
*拆rgb三通道
decompose3(Image,Red,Green,Blue)
*从rgb转换至hsv空间
trans_from_rgb (Red,Green,Blue,Hue,Saturation,Intensity,'hsv')
threshold (Saturation, Regions, 180, 255)
*开运算去除噪声
opening_rectangle1 (Regions, RegionOpening, 1, 1)
fill_up (RegionOpening, RegionFillUp)
connection (RegionFillUp, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 4578.85, 6137.99)
shape_trans (SelectedRegions, RegionTrans, 'rectangle2')
orientation_region (RegionTrans, Phi)
area_center (RegionTrans, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column, rad(0), HomMat2D)
affine_trans_image (Image, ImageAffineTrans, HomMat2D, 'constant', 'false')
affine_trans_region (RegionTrans, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
reduce_domain (ImageAffineTrans, RegionAffineTrans, ImageReduced)
*以上内容:提取出车牌并矫正完毕
*ImageReduced暗背景亮字体,灰度翻转用来识别
invert_image (ImageReduced, ImageInvert)
rgb1_to_gray (ImageReduced, GrayImage)
threshold (GrayImage, Regions1, 109, 255)
connection (Regions1, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 197.58, 349.01)
sort_region (SelectedRegions1, SortedRegions, 'character', 'true', 'column')
*以上内容:数字/字符提取分割完毕,可以识别了
*'Industrial_0-9A-Z_NoRej.omc'指识别工业字体
read_ocr_class_mlp ('Industrial_0-9A-Z_NoRej.omc', OCRHandle)
do_ocr_multi_class_mlp (SortedRegions, ImageInvert, OCRHandle, Class, Confidence)
disp_message (WindowHandle, Class, 'window', 12, 12, 'black', 'true')
识别结果
原图