当前位置:网站首页>Shape template matching based on Halcon learning [VII] reuse_ model. Hdev routine
Shape template matching based on Halcon learning [VII] reuse_ model. Hdev routine
2022-07-05 07:55:00 【BoomBiuBiu】
This sample program shows how to reuse the created model .
1、 Read the picture
dev_update_window ('off')
* Read the picture
read_image (ModelImage, 'rings_and_nuts')
* Get a channel Pointer( Indicator )
get_image_pointer1 (ModelImage, Pointer, Type, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'white', WindowHandle)
dev_set_part (0, 0, Height - 1, Width - 1)
dev_display (ModelImage)
* Set some column parameters
dev_set_color ('cyan')
dev_set_draw ('margin')
dev_set_line_width (2)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
2、 Create a template
* Create a template
Row := 324
Column := 279
Radius := 60
gen_circle (ROI1, Row, Column, Radius)
gen_circle (ROI2, Row, Column, 0.5 * Radius)
* Difference set
difference (ROI1, ROI2, ModelROI)
* Cutout
reduce_domain (ModelImage, ModelROI, ImageROI)


* Create a template
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)
dev_clear_window ()
dev_display (ShapeModelRegion)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
3、 The storage model ( Include XLD)
ModelFile := 'model_nut.sbm'
* Save template
write_shape_model (ModelID, ModelFile)
* Besides , We store the model area
ModelRegionFile := 'model_region_nut.png'
write_image (ImageROI, 'png', 0, ModelRegionFile)
* Clear template
clear_shape_model (ModelID)4、 Read the model from the file
read_shape_model (ModelFile, ReusedModelID)
* Access the parameters used to create the model
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)
* Access model area
read_image (ImageModelRegion, 'model_region_nut.png')
get_domain (ImageModelRegion, DomainModelRegion)
dev_display (ImageModelRegion)
dev_display (DomainModelRegion)
stop ()
5、 Search for
read_image (SearchImage, 'rings_and_nuts')
dev_display (SearchImage)
* Begin to match
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
* Affine transformation
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
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
6、 Clear template
clear_shape_model (ModelID)
边栏推荐
- Random function usage notes
- Create inf module in AMI code
- QT excellent articles
- The global and Chinese market of lithographic labels 2022-2028: Research Report on technology, participants, trends, market size and share
- Global and Chinese markets for anesthesia, breathing and sleep apnea devices 2022-2028: Research Report on technology, participants, trends, market size and share
- UEFI development learning 4 - getting to know variable services
- Detailed explanation of pragma usage
- Esmini longspeedaction modification
- Opendrive ramp
- Use stm32cubemx tool to write the demo program of FreeRTOS
猜你喜欢

Embedded composition and route

C language uses arrays to realize the intersection, union, difference and complement of sets

Openxlsx field reading problem

MySql——存储引擎

Realization of binary relation of discrete mathematics with C language and its properties

Create inf module in AMI code

Win10 shortcut key

Nombre - 1. Création de tableaux

Altium Designer 19.1.18 - 导入板框

Altium Designer 19.1.18 - 清除测量距离产生的信息
随机推荐
Extern keyword function
Consul installation
导电滑环磨损快的原因
Network communication model -- Network OSI tcp/ip layering
Markdown tips
Global and Chinese markets for medical oxygen machines 2022-2028: Research Report on technology, participants, trends, market size and share
IC software learning
Global and Chinese market of blackbody calibration source 2022-2028: Research Report on technology, participants, trends, market size and share
Ads usage skills
Ten thousand words detailed eight sorting must read (code + dynamic diagram demonstration)
Software designer: 03 database system
Global and Chinese market of quenching furnaces 2022-2028: Research Report on technology, participants, trends, market size and share
C # joint configuration with Halcon
UEFI development learning 4 - getting to know variable services
Significance and requirements of semiconductor particle control
Altium Designer 19.1.18 - 隐藏某一个网络的飞线
Global and Chinese market for blood typing 2022-2028: Research Report on technology, participants, trends, market size and share
How to define guid in AMI code
UEFI development learning 3 - create UEFI program
TCP and UDP