当前位置:网站首页>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
边栏推荐
- STM32 learning method
- Ten thousand words detailed eight sorting must read (code + dynamic diagram demonstration)
- Day07 type of mathematical operator automatic conversion relational operator bitwise operator blind date math
- C WinForm [exit application] - practice 3
- 通过sql语句统计特定字段出现次数并排序
- 研究發現,跨境電商客服系統都有這五點功能!
- L'étude a révélé que le système de service à la clientèle du commerce électronique transfrontalier a ces cinq fonctions!
- Software designer: 03 database system
- Global and Chinese market of plastic recycling machines 2022-2028: Research Report on technology, participants, trends, market size and share
- Altium Designer 19.1.18 - 导入板框
猜你喜欢

导电滑环磨损快的原因

Consul安装

Numpy——1. Creation of array

C language enhancement -- pointer

Nombre - 1. Création de tableaux

Shell脚本基本语法

Communication standard -- communication protocol

Cadence simulation encountered "input.scs": can not open input file change path problem

Altium Designer 19.1.18 - 清除测量距离产生的信息

mysql 盲注常见函数
随机推荐
RTOS in the development of STM32 single chip microcomputer
How to migrate the device data accessed by the RTSP of the easycvr platform to easynvr?
Makefile application
Day09 how to create packages import package naming conventions Alibaba Development Manual
Good websites need to be read carefully
C WinForm [help interface - send email] - practice five
Programming knowledge -- assembly knowledge
Process communication mode between different hosts -- socket
UEFI development learning 3 - create UEFI program
Esmini longspeedaction modification
[professional literacy] core conferences and periodicals in the field of integrated circuits
Application of ultra pure water particle counter in electronic semiconductors
QT's excellent articles
Day06 class variables instance variables local variables constant variables naming conventions
The sublime version that XP can run is 3114
solver. Learning notes of prototxt file parameters
How to define guid in AMI code
PIL's image tool image reduction and splicing.
STM32 knowledge points
Record the visual shock of the Winter Olympics and the introduction of the screen 2