当前位置:网站首页>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 :
边栏推荐
- Cadence simulation encountered "input.scs": can not open input file change path problem
- String judgment
- Some tips for using source insight (solve the problem of selecting all)
- Summary of STM32 serial port sending and receiving data methods
- STM32 knowledge points
- Markdown tips
- solver. Learning notes of prototxt file parameters
- Gradle复合构建
- Create inf module in AMI code
- Practical application cases of digital Twins - fans
猜你喜欢
Cadence simulation encountered "input.scs": can not open input file change path problem
About the problem that MySQL connector net cannot be cleared in MySQL
Train your dataset with yolov4
Openxlsx field reading problem
Altium Designer 19.1.18 - 更改铺铜的透明度
Embedded composition and route
Embedded AI intelligent technology liquid particle counter
Altium Designer 19.1.18 - 隐藏某一个网络的飞线
Create inf module in AMI code
A simple method to prove 1/t Fourier transform
随机推荐
Reasons for rapid wear of conductive slip rings
Day08 ternary operator extension operator character connector symbol priority
Programming knowledge -- assembly knowledge
Programming knowledge -- basis of C language
Improve lighting C program
How to select conductive slip ring
Nombre - 1. Création de tableaux
Linked list (establishment, deletion, insertion and printing of one-way linked list)
Global and Chinese market of peeled bourdon tubes 2022-2028: Research Report on technology, participants, trends, market size and share
QT excellent articles
Detailed explanation of C language pointer
C WinForm [display real-time time in the status bar] - practical exercise 1
C WinForm [help interface - send email] - practice five
Extended application of single chip microcomputer-06 independent key
The browser cannot access Baidu
UEFI development learning 2 - running ovmf in QEMU
STM32 learning method
Consul安装
C language enhancement -- pointer
万字详解八大排序 必读(代码+动图演示)