资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
HALCON 学习例程中文-IC 引脚测量 路径-C:ProgramFilesMVTecHALCON- 10.0exampleshdevelopApplicationsMeasuring- 2Dmeasure_pin.hdev Lead Measurement: Example for the application of the measure object including a lot of visualization operators. First, the length of the leads is measured, then, their width and distance from each other. First, read in the image and initialize the program Read_image (Image, icpin) *取得图像第一通道的指针,同时得到图像宽度高度* Get_image_pointer1 (Image, Pointer, Type, Width, Height) *get_image_pointer1 ( Image : : : Pointer, Type, Width, Height ) ; 获得图像的数据。如:类型(= 字节, ,uint2 int2 等等) 和图像的尺 寸( 的宽度和高度) Dev_close_window () dev_close_window ( : : : ) 关闭活跃的图形窗口。 Dev_open_window_fit_image (Image, 0, 0, 509, 509, WindowHandle) 设置窗口自适应图片,获得句柄 Set_display_font (WindowHandle, 14, mono, true, false) 内部程序,设置字体 dev_display (Image) *显示图像如下:* Define and display the rectangular ROIs within which the edges will be detected /ROI 设置 Dev_set_draw (margin) Dev_se_tline_width (3) Row := 55 RowBottom := 955 Column := 200 Phi := rad(-90) Length1 := 50 Length2 := 35devsetcolor (gray) gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2) gen_rectangle2 (Rectangle, RowBottom, Column, Phi, Length1, Length2) 创建ROI的矩形显示区域*测量位置如绿色矩形所示下:* Disp_continue_message (WindowHandle, black, true) 显示继续信息 stop () Create a measure object for the ROI at the top of the image.*获取一阶灰度剖面图的插值方法,测量矩形框与图像坐标系之间有角度时生 效* Interpolation := nearest_neighbor *生成测量矩形框,先测上部* Gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, Interpolation, MeasureHandle) Determine all edges and calculate the lead height at the top of the image/垂直与矩形的直线边缘的提取。 Sigma := 1.0 Threshold := 30 Transition := all Select := all *进行测量* measure_pos (Image, MeasureHandle, Sigma, Threshold, Transition, Select, RowEdge, ColumnEdge, Amplitude, Distance) 提取与矩形或环状弧垂直的直线边缘。 LeadLength1 := Distance Display the results devsetcolor (white) *将测量结果画出*disp_line (WindowHandle, RowEdge, ColumnEdge-Length2, RowEdge, ColumnEdge+Length2) disp_message (WindowHandle, Lead Length: +LeadLength1$.2f, window, RowEdge1+40, ColumnEdge1+100, yellow, false) 程序写入文本信息 Shift the measure object and determine the lead height at the bottom of the image *转移测量框至新的参考坐标点,及测量下部* translate_measure (MeasureHandle, RowBottom, Column) *进行测量* measure_pos (Image, MeasureHandle, Sigma, Threshold, Transition, Select, RowEdge, ColumnEdge, Amplitude, Distance) LeadLength2 := Distance Display the results devsetcolor (white) *将测量结果画出* disp_line (WindowHandle, RowEdge, ColumnEdge-Length2, RowEdge, ColumnEdge+Length2) disp_message (WindowHandle, Lead Length: +LeadLength2$.2f, window, 360, ColumnEdge1+100, red, false) Close the measure close_measure (MeasureHandle) 清除一个测试对象。 Disp_continue_message (WindowHandle, black, true)等待用户操作是否继续 stop () Now, define and display a rectangular ROI perpendicular to the leads and create the measure dev_display (Image) Row := 47 Column := 485 Phi := 0 Length1 := 420 Length2 := 8 Interpolation := nearest_neighbor devsetcolor (black) *创建新的测量矩形 ROI,如图蓝色矩形:*gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2) 创建 ROI 矩形 gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, Interpolation, MeasureHandle) 垂直与矩形的直线边缘的提取。 Determine all edge pairs that have a negative transition, i.e., edge pairs that enclose dark regions. Sigma := 1.0 Threshold := 30 Transition := negative Select := all *进行测量计算并显示结果*measure_pairs (Image, MeasureHandle, Sigma, Threshold, Transition, Select, RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance) 提取测量与矩形或环状弧垂直的直线边缘。 dispcontinuemessage (WindowHandle, black, true) stop () devsetcolor (white) disp_line (WindowHandle, RowEdgeFirst, ColumnEdgeFirst, RowEdgeSecond, ColumnEdgeSecond) avgLeadWidth := sum(IntraDistance)/|IntraDistance| avgLeadDistance := sum(InterDistance)/|InterDistance| numLeads := |IntraDistance|disp_message (WindowHandle, Number of Leads: +numLeads, window, 200, 100, yellow, false) disp_message (WindowHandle, Average Lead Width: +avgLeadWidth$.2f, window, 260, 100, yellow, false) disp_message (WindowHandle, Average Lead Distance: +avgLeadDistance$.2f, window, 320, 100, yellow, false) 信息显示 dispcontinuemessage (WindowHandle, black, true) dispcontinuemessage (WindowHandle, black, true) stop () Zoom in to visualize the measurement results in more detail. First, define and display the zoom window. Row1 := 0 Column1 := 600 Row2 := 100 Column2 := 700 devsetcolor (blue) *设置放大区域矩形并显示,图中绿色矩形*disp_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2) 显示和坐标轴对齐的矩形。 dispcontinuemessage (WindowHandle, black, true) stop () Then
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号