当前位置:网站首页>Measurement fitting based on Halcon learning [i] fuse Hdev routine
Measurement fitting based on Halcon learning [i] fuse Hdev routine
2022-07-05 07:56:00 【BoomBiuBiu】
This routine measures the width of the fuse
First step : Get photo
* Close the update of the window when the program is executing
dev_update_window ('off')
* close window
dev_close_window ()
* First step : Get photo
read_image (Fuse, 'fuse')
get_image_size (Fuse, Width, Height)
dev_open_window_fit_image (Fuse, 0, 0, Width, Height, WindowID)
set_display_font (WindowID, 12, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (3)
dev_display (Fuse)
set_display_font (WindowID, 12, 'mono', 'true', 'false')
disp_continue_message (WindowID, 'black', 'true')
stop ()
The second step : Create a measurement object
* The second step : Create a measurement object
* Appoint ROI
Row := 297
Column := 545
Length1 := 80
Length2 := 10
Angle := rad(90)
gen_rectangle2 (ROI, Row, Column, Angle, Length1, Length2)
* Generate a measurement rectangle
gen_measure_rectangle2 (Row, Column, Angle, Length1, Length2, Width, Height, 'bilinear', MeasureHandle)
dev_display (ROI)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* Extract edge pairs
measure_pairs (Fuse, MeasureHandle, 1, 1, 'negative', 'all', RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)
disp_continue_message (WindowID, 'black', 'true')
stop ()
The third step : Show results
* The third step : Show results
for i := 0 to |RowEdgeFirst| - 1 by 1
* Draw two straight lines
gen_contour_polygon_xld (EdgeFirst, [-sin(Angle + rad(90)) * Length2 + RowEdgeFirst[i],-sin(Angle - rad(90)) * Length2 + RowEdgeFirst[i]], [cos(Angle + rad(90)) * Length2 + ColumnEdgeFirst[i],cos(Angle - rad(90)) * Length2 + ColumnEdgeFirst[i]])
gen_contour_polygon_xld (EdgeSecond, [-sin(Angle + rad(90)) * Length2 + RowEdgeSecond[i],-sin(Angle - rad(90)) * Length2 + RowEdgeSecond[i]], [cos(Angle + rad(90)) * Length2 + ColumnEdgeSecond[i],cos(Angle - rad(90)) * Length2 + ColumnEdgeSecond[i]])
* Set the color of the first line
dev_set_color ('cyan')
dev_display (EdgeFirst)
* Set the color of the second line
dev_set_color ('magenta')
dev_display (EdgeSecond)
dev_set_color ('blue')
* Control the position of font display
if (i == 0)
set_tposition (WindowID, RowEdgeFirst[i] + 5, ColumnEdgeFirst[i] + 20)
else
set_tposition (WindowID, RowEdgeFirst[i] - 40, ColumnEdgeFirst[i] + 20)
endif
* Display the distance on the image
write_string (WindowID, 'width: ' + IntraDistance[i] + ' pix')
endfor
disp_continue_message (WindowID, 'black', 'true')
stop ()
* Delete the measurement object
close_measure (MeasureHandle)
dev_update_window ('on')
dev_clear_window ()
Two important operators :
Generate a measurement rectangle
gen_measure_rectangle2( : : Row, Column, Phi, Length1, Length2, Width, Height, Interpolation : MeasureHandle)Row, Column,Phi: Measure the row and column coordinates and angles of the center of the rectangle ;
Length1, Length2: Measure the width and half height of the rectangular plate ;
Width, Height: Measure the width and height of the image where the rectangle is located ;
Interpolation: Interpolation algorithm
MeasureHandle: Handle of measuring rectangle
Find with edge pairs
measure_pairs(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)MeasureHandle: Handle of measuring rectangle ;
Sigma: Gaussian smoothing coefficient ;
Threshold: Minimum margin amplitude ;
Transition: excessive , Light to dark ’negative’, Dark to bright ’positive’, Both ’all’
Select : If set to ’all’, All edge points are returned . If you set it to ’ first’, Then only the first of the extracted edge points is returned , Set it to ’last’ when , Return only the last .
RowEdgeFirst, ColumnEdgeFirst,AmplitudeFirst: Row and column coordinates and edge amplitude of the first edge center
RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond: Row and column coordinates and edge amplitude of the second edge center
IntraDistance: Returns the distance between two edges in the edge alignment
Distance: Returns the distance between two consecutive edge pairs
边栏推荐
- Function and usage of function pointer
- Global and Chinese market of peeled bourdon tubes 2022-2028: Research Report on technology, participants, trends, market size and share
- A complete set of indicators for the 10000 class clean room of electronic semiconductors
- Realization of binary relation of discrete mathematics with C language and its properties
- 软件设计师:03-数据库系统
- RTOS in the development of STM32 single chip microcomputer
- Embedded AI intelligent technology liquid particle counter
- Consul安装
- Could NOT find XXX (missing: XXX_LIBRARY XXX_DIR)
- A simple method to prove 1/t Fourier transform
猜你喜欢
A complete set of indicators for the 10000 class clean room of electronic semiconductors
Consul安装
About the problem that MySQL connector net cannot be cleared in MySQL
Oracle triggers and packages
Markdown tips
Acwing-宠物小精灵之收服-(多维01背包+正序倒序+两种形式dp求答案)
Screen record of the opening ceremony of the Beijing winter olympics 2
Altium designer 19.1.18 - change the transparency of copper laying
UEFI development learning 5 - simple use of protocol
Programming knowledge -- assembly knowledge
随机推荐
About the problem that MySQL connector net cannot be cleared in MySQL
Query the table name used by kettle in Oracle
Factors affecting the quality of slip rings in production
[professional literacy] core conferences and periodicals in the field of integrated circuits
Altium designer 19.1.18 - change the transparency of copper laying
msys2
Global and Chinese market of digital shore durometer 2022-2028: Research Report on technology, participants, trends, market size and share
How to excavate and research ideas from the paper
Significance and requirements of semiconductor particle control
Extended application of single chip microcomputer-06 independent key
Network port usage
Communication standard -- communication protocol
Numpy——1.數組的創建
About yolov3, conduct map test directly
L'étude a révélé que le système de service à la clientèle du commerce électronique transfrontalier a ces cinq fonctions!
solver. Learning notes of prototxt file parameters
Acwing - the collection of pet elves - (multidimensional 01 Backpack + positive and reverse order + two forms of DP for the answer)
The research found that the cross-border e-commerce customer service system has these five functions!
Global and Chinese market of core pallets 2022-2028: Research Report on technology, participants, trends, market size and share
Random function usage notes