halcon跟随定位有误差
- list_files ('F:/2023桌面/board', ['files','follow_links'], ImageFiles)
- tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
- read_image (Image, ImageFiles[0])
- dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
- dev_display (Image)
- get_image_pointer1 (Image, Pointer, Type, Width, Height)
- *获取模板抠图
- gen_rectangle1 (ROI_0, 196.724, 187.256, 290.883, 404.241)//抠图大小
- area_center (ROI_0, Area, Row, Column) //获取抠图 中心的行列坐标
- reduce_domain (Image, ROI_0, ImageReduced)//单区域抠图
- *add_channels (ROI_0, ImageReduced, GrayRegions)//多区域抠图
- *生成模板
- inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 4, [25,40])//查看模板
- *create_shape_model (ImageReduced, 10, 0, 6.29, 0.03, 'none', 'use_polarity', [25,40], 10, ModelID)//已抠图区域生成模板
- create_shape_model (ImageReduced, 5, rad(0), rad(360), rad(0.01), ['none','no_pregeneration'], 'use_polarity', [30,30,0], 10, ModelID)
- get_shape_model_contours (ModelContours, ModelID, 1) //获取模板
- hom_mat2d_identity (HomMat2DIdentity)//单位矩阵
- gen_rectangle2 (ROI_000, 140, 152, 0, 8, 30) //区域跟随
- *gen_rectangle2_contour_xld (Rectangle, 140, 302, 0, 163, 7) //XLD跟随 Y 140
- dev_get_window (WindowHandle)
- dev_set_line_width (2)
- set_display_font (WindowHandle, 20, 'mono', 'true', 'false')
- for Index := 0 to |ImageFiles| - 1 by 1
- read_image (Image, ImageFiles[Index])
- *find_shape_model (Image, ModelID, 0, rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Score)
- find_shape_model (Image, ModelID, rad(0), rad(360), 0.5, 0, 0.5, 'least_squares', [5,1], 0.95, Row1, Column1, Angle, Score)
- if (|Score| > 0)
-
- *模板仿射变换
- hom_mat2d_translate (HomMat2DIdentity,Row1, Column1, HomMat2DTranslate)//平移矩阵
- hom_mat2d_rotate (HomMat2DTranslate, Angle, Row1, Column1, HomMat2DRotate)//旋转矩阵
- affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2DRotate)
- *跟随1,使用vector_angle_to_rigid算子 刚体变换
- vector_angle_to_rigid ( Row, Column, 0, Row1, Column1, Angle, HomMat2D)
- affine_trans_region (ROI_000, RegionAffineTrans, HomMat2D, 'nearest_neighbor')//区域跟随
- dev_display (Image)
- dev_set_color ('red')
- dev_display (ContoursAffineTrans)
- dev_set_color ('green')
- dev_display (RegionAffineTrans)
- stop ()
- endif
- endfor
- clear_shape_model (ModelID)
复制代码
|