Halcon_光度立体法,OCR识别


dev_close_window ()
read_image (Image, 'photometric_stereo/toothpaste_embossed_01')
get_image_size (Image, Width, Height)
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)

*光度立体
read_image (Images, 'photometric_stereo/toothpaste_embossed_0' + [1:4]) //读入图像数组
Tilts := [6.1,95.0,-176.1,-86.8]//俯视图下,光源与水平方向夹角
Slants := [41.4,42.6,41.7,40.9]//相机和光源夹角
*HeightField:高度场;Gradient:灰度场;Albedo:反射率
photometric_stereo (Images, HeightField, Gradient, Albedo, Slants, Tilts, 'all', 'poisson', [], [])
derivate_vector_field (Gradient, Result, 1, 'divergence')
*二值化
threshold (Result, Regions, -0.5, -0.06315)
opening_circle (Regions, RegionOpening,1.5)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'height', 'and', 35.649, 55.649)
union1 (SelectedRegions, RegionUnion)
*造图便于识别
gen_image_const (Image1, 'byte', Width, Height)
invert_image (Image1, ImageInvert)
paint_region (RegionUnion, ImageInvert, ImageResult, 0, 'fill')
*OCR识别
read_ocr_class_mlp ('Document_0-9_NoRej.omc', OCRHandle2)
sort_region (SelectedRegions, SortedRegions, 'first_point', 'true', 'row')
do_ocr_multi_class_mlp (SortedRegions, ImageResult, OCRHandle2, Class, Confidence)
clear_ocr_class_mlp (OCRHandle2)

*显示
set_display_font (WindowHandle, 20, 'mono', 'true', 'false')
dev_display (Image)
dev_display (SortedRegions)
disp_message (WindowHandle, sum(Class), 'image', 12, 12, 'black', 'true')

posted @ 2021-05-03 22:04  默默依然  阅读(411)  评论(0编辑  收藏  举报