Halcon 学习2 金属雕刻字识别

*HALCON 里面的例程名称:engraved_cnn.hdev
read_image (Image, 'engraved')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
**增强孤立点或团状缺陷,金属上雕刻字符的图像,需要此算子处理后,才能容易的分割出来字符
gray_range_rect (Image, ImageResult, 7, 7)
*图像取反
invert_image (ImageResult, ImageInvert)
*阈值分割
threshold (ImageResult, Region, 128, 255)
*区域联通
connection (Region, ConnectedRegions)
*区域筛选
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 99999)
*排序
sort_region (SelectedRegions, SortedRegions, 'first_point', 'true', 'column')

set_display_font (WindowHandle, 36, 'mono', 'true', 'false')
*区域变化 取最小外接矩形
shape_trans (SortedRegions, RegionTrans, 'rectangle1')
*区域参数
area_center (RegionTrans, Area, Row, Column)
MeanRow := mean(Row)
count_obj (SortedRegions, Number)
*读取通用模板文档
read_ocr_class_cnn ('Universal_Rej', OCRHandle)
for I := 1 to Number by 1
select_obj (SortedRegions, ObjectSelected, I)
*第四个参数 识别最佳数量 越小越精准
do_ocr_single_class_cnn (ObjectSelected, ImageInvert, OCRHandle, 1, Class, Confidence)
dev_disp_text (Class, 'image', MeanRow + 60, Column[I - 1] - 10, 'yellow', 'box', 'false')
endfor

猜你喜欢

转载自www.cnblogs.com/chenenfu/p/11769895.html