Directorio de artículos
necesitar
En el proceso de coincidencia de plantillas, la plantilla de forma actual debe guardarse para su posterior lectura y carga.
soporte del operador halcón
1. Guarde la plantilla de forma
Prototipo de función:
write_shape_model( ModelID, FileName : )
Descripción del parámetro:
ModelID: el identificador del modelo
FileName: el nombre del archivo guardado, la extensión de archivo HALCON predeterminada del modelo de forma es 'shm'.
2. Lee la plantilla de forma
Prototipo de función:
read_shape_model(FileName : ModelID)
Descripción del parámetro:
FileName: el nombre del archivo que se leerá
ModelID: el controlador de la plantilla de forma
Ejemplo:
1. Guarde la plantilla de forma
*读取图像
read_image (ModelImage, 'rings_and_nuts')
get_image_pointer1 (ModelImage, Pointer, Type, Width, Height)
*做ROI
Row := 324
Column := 279
Radius := 60
gen_circle (ROI1, Row, Column, Radius)
reduce_domain (ModelImage, ROI1, ImageROI)
*创建形状模板
create_scaled_shape_model (ImageROI, 'auto', -rad(30), rad(60), 'auto', 0.6, 1.4, 'auto', 'none', 'use_polarity', 60, 10, ModelID)
inspect_shape_model (ImageROI, ShapeModelImage, ShapeModelRegion, 1, 30)
保存形状模板ModelFile := 'model.sbm'
write_shape_model (ModelID, ModelFile)
clear_shape_model (ModelID)
2. Lea la plantilla de forma cargada
*读取形状模板
read_shape_model (ModelFile, ReusedModelID)
*获取新装模板的轮廓,区域坐标等信息
get_shape_model_contours (ReusedShapeModel, ReusedModelID, 1)
get_shape_model_origin (ReusedModelID, ReusedRefPointRow, ReusedRefPointCol)
get_shape_model_params (ReusedModelID, NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Metric, MinContrast)
*读取新图像
read_image (SearchImage, 'rings_and_nuts')
*搜索匹配
find_scaled_shape_model (SearchImage, ReusedModelID, AngleStart, AngleExtent, ScaleMin, ScaleMax, 0.65, 0, 0, 'least_squares', 0, 0.8, RowCheck, ColumnCheck, AngleCheck, ScaleCheck, Score)
*对搜索到的形状轮廓做仿射变换
for i := 0 to |Score| - 1 by 1
vector_angle_to_rigid (ReusedRefPointRow, ReusedRefPointCol, 0, RowCheck[i], ColumnCheck[i], AngleCheck[i], MovementOfObject)
hom_mat2d_scale (MovementOfObject, ScaleCheck[i], ScaleCheck[i], RowCheck[i], ColumnCheck[i], MoveAndScalingOfObject)
affine_trans_contour_xld (ReusedShapeModel, ModelAtNewPosition, MoveAndScalingOfObject)
dev_display (ModelAtNewPosition)
endfor