扩视机器视觉—Halcon机器视觉48个实战项目八(检测字符基于神经网络感知)

  • Post author:
  • Post category:其他

项目需求:

此项目halcon检测字符基于神经网络感知,并显示。

素材如下:
在这里插入图片描述

检测后的效果如下:

在这里插入图片描述

Halcon训练代码如下:

read_image (Image12, '12.png')
rgb1_to_gray (Image12, GrayImage)
gen_rectangle1 (ROI_0, 1146.46, 431.976, 1457.5, 2587.22)
reduce_domain (GrayImage, ROI_0, ImageReduced)
threshold (ImageReduced, Region, 0, 100)
connection (Region, ConnectedRegions)
union1 (ConnectedRegions, RegionUnion)
dilation_rectangle1 (RegionUnion, RegionDilation, 5, 36)
connection (RegionDilation, ConnectedRegions1)
shape_trans (ConnectedRegions1, RegionTrans, 'rectangle1')
intersection (RegionTrans, Region, RegionIntersection)
sort_region (RegionIntersection, SortedRegions, 'first_point', 'true', 'column')
count_obj (SortedRegions, Number)
class1 := ['海','雀','M','i','c','r','o','S','D','X','C','存','储','卡']
delete_file ('train_ocr.trf')
for Index := 0 to |class1|-1 by 1
select_obj (SortedRegions, ObjectSelected, Index+1)
append_ocr_trainf (ObjectSelected, ImageReduced, class1[Index], 'train_ocr'+'.trf')
endfor
chans:=uniq(sort(class1))
create_ocr_class_mlp (8, 10, 'constant', 'default', chans, 80, 'none', 10, 42, OCRHandle)
trainf_ocr_class_mlp (OCRHandle, 'train_ocr.trf', 200, 1, 0.01, Error, ErrorLog)
write_ocr_class_mlp (OCRHandle, 'train_ocr')
clear_ocr_class_mlp (OCRHandle)

Halcon识别代码如下:

read_image (Image12, '12.png')
rgb1_to_gray (Image12, GrayImage)
gen_rectangle1 (ROI_0, 1146.46, 431.976, 1457.5, 2587.22)
reduce_domain (GrayImage, ROI_0, ImageReduced)
threshold (ImageReduced, Region, 0, 100)
connection (Region, ConnectedRegions)
union1 (ConnectedRegions, RegionUnion)
dilation_rectangle1 (RegionUnion, RegionDilation, 5, 36)
connection (RegionDilation, ConnectedRegions1)
shape_trans (ConnectedRegions1, RegionTrans, 'rectangle1')
intersection (RegionTrans, Region, RegionIntersection)
sort_region (RegionIntersection, SortedRegions, 'first_point', 'true', 'column')
smallest_rectangle2 (SortedRegions, Row111, Column111, Phi, Length1, Length2)
set_display_font (200000, 25, 'mono', 'true', 'false')
count_obj (SortedRegions, Number)
read_ocr_class_mlp ('train_ocr.omc', OCRHandle)
for Index := 0 to Number-1 by 1
    dev_set_color ('red')
    select_obj (SortedRegions, ObjectSelected, Index+1)
     
    area_center (ObjectSelected, Area, RowOUT1, ColumnOUT1)
    do_ocr_multi_class_mlp (ObjectSelected, ImageReduced, OCRHandle, Class, Confidence)
    dev_set_color ('green')
    set_tposition (200000, RowOUT1+200, ColumnOUT1)
    write_string (200000, Class)
endfor

扩视项目详细视频如下:

点击》》》》》观看此项目详细视频,学习快速项目开发思想套路。


版权声明:本文为qq_21516871原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。