当前位置:网站首页>Halcon's practice based on shape template matching [2]
Halcon's practice based on shape template matching [2]
2022-07-05 07:56:00 【BoomBiuBiu】
Reprint here with code , The result is the same as that displayed by the matching assistant
* Image Acquisition 01: Code generated by Image Acquisition 01
* Turn on camera
open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[0] Web Camera', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
* Create a template , First show the pictures captured by the camera grab_image_start (AcqHandle, -1)
grab_image_async (Image, AcqHandle, -1)
* use ROI Draw a rectangle
gen_rectangle2 (ROI_0, 291.907, 1059.07, rad(-90), 138.921, 92.1362)
* Cutout
reduce_domain (Image, ROI_0, ImageReduced)
* The starting angle and ending angle are determined by 0-0 Change it to rad(0)-rad(360)
* Create a template
create_scaled_shape_model (ImageReduced, 'auto',rad(0), rad(360), 'auto', 0.9, 1.1, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
* Or the outline of the template
get_shape_model_contours (Model, ModelID, 1)
* Set the color
dev_set_color ('red')
* Set the line width
dev_set_line_width (3)
while (true)
grab_image_async (Image, AcqHandle, -1)
* The starting angle and ending angle are changed to rad(0)-rad(360)
* Find template
find_scaled_shape_model (Image, ModelID, rad(0), rad(360), 0.9, 1.1, 0.5, 10, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Scale, Score)
* Judge whether there is a target in the area , Otherwise, an error will be reported
if(|Score|>0)
* Target by target
for I := 0 to |Score| - 1 by 1
* Unit matrix
hom_mat2d_identity (HomMat2DIdentity)
* Translation matrix
hom_mat2d_translate (HomMat2DIdentity, Row[I], Column[I], HomMat2DTranslate)
* Rotation matrix
hom_mat2d_rotate (HomMat2DTranslate, Angle[I], Row[I], Column[I], HomMat2DRotate)
* Zoom matrix
hom_mat2d_scale (HomMat2DRotate, Scale[I], Scale[I], Row[I], Column[I], HomMat2DScale)
* Show the outline
affine_trans_contour_xld (Model, ModelTrans, HomMat2DScale)
dev_display (Image)
dev_display (ModelTrans)
endfor
endif
endwhile
* Turn off camera
close_framegrabber (AcqHandle)result :

notes : The affine transformation here can be replaced by other operators
* Unit matrix
hom_mat2d_identity (HomMat2DIdentity)
* Translation matrix
hom_mat2d_translate (HomMat2DIdentity, Row[I], Column[I], HomMat2DTranslate)
* Rotation matrix
hom_mat2d_rotate (HomMat2DTranslate, Angle[I], Row[I], Column[I], HomMat2DRotate)
* Zoom matrix
hom_mat2d_scale (HomMat2DRotate, Scale[I], Scale[I], Row[I], Column[I], HomMat2DScale)
*-----------------------
* The following operators can be used instead
vector_angle_to_rigid (0, 0, 0, Row[I], Column[I], Angle[I], HomMat2D1)
* Zoom matrix
hom_mat2d_scale (HomMat2D1, Scale[I], Scale[I], Row[I], Column[I], HomMat2DScale)result :


边栏推荐
- assert_ Usage of param function
- 生产中影响滑环质量的因素
- Practical application cases of digital Twins - fans
- Ads learning record (lna_atf54143)
- Network communication process
- Record the opening ceremony of Beijing Winter Olympics with display equipment
- Altium Designer 19.1.18 - 更改铺铜的透明度
- Create inf module in AMI code
- Network port usage
- Network communication model -- Network OSI tcp/ip layering
猜你喜欢

Acwing-宠物小精灵之收服-(多维01背包+正序倒序+两种形式dp求答案)

Oracle triggers and packages

Reasons for rapid wear of conductive slip rings

Makefile application

LED display equipment records of the opening ceremony of the Beijing Winter Olympics

Altium designer 19.1.18 - hide the fly line of a network

Ten thousand words detailed eight sorting must read (code + dynamic diagram demonstration)

The printer encountered an abnormal configuration problem 0x8007007e (win10)

Record the visual shock of the Winter Olympics and the introduction of the screen 2

万字详解八大排序 必读(代码+动图演示)
随机推荐
A simple method to prove 1/t Fourier transform
Network communication model -- Network OSI tcp/ip layering
Using C language to realize IIC driver in STM32 development
Day06 class variables instance variables local variables constant variables naming conventions
Network port usage
1089 insert or merge, including test point 5
A series of problems in offline installation of automated test environment (ride)
C WinForm [display real-time time in the status bar] - practical exercise 1
Interview catalogue
·Practical website·
Factors affecting the quality of slip rings in production
UEFI development learning 3 - create UEFI program
TCP and UDP
Consul installation
How to migrate the device data accessed by the RTSP of the easycvr platform to easynvr?
Summary of STM32 serial port sending and receiving data methods
Record the visual shock of the Winter Olympics and the introduction of the screen 2
[professional literacy] specific direction of analog integrated circuits
msys2
mysql 盲注常见函数