跟我学机器视觉--example

上传人:mg****85 文档编号:34955483 上传时间:2018-03-05 格式:DOC 页数:13 大小:89.50KB
返回 下载 相关 举报
跟我学机器视觉--example_第1页
第1页 / 共13页
跟我学机器视觉--example_第2页
第2页 / 共13页
跟我学机器视觉--example_第3页
第3页 / 共13页
跟我学机器视觉--example_第4页
第4页 / 共13页
跟我学机器视觉--example_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《跟我学机器视觉--example》由会员分享,可在线阅读,更多相关《跟我学机器视觉--example(13页珍藏版)》请在金锄头文库上搜索。

1、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

2、 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

3、_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

4、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) 创建R

5、OI的矩形显示区域*测量位置如绿色矩形所示下:* 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, Wid

6、th, 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, Amplitu

7、de, 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)

8、程序写入文本信息 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

9、:= 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) 清除一个测试

10、对象。 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) *

11、创建新的测量矩形 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 enclos

12、e 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) 提取测

13、量与矩形或环状弧垂直的直线边缘。 dispcontinuemessage (WindowHandle, black, true) stop () devsetcolor (white) disp_line (WindowHandle, RowEdgeFirst, ColumnEdgeFirst, RowEdgeSecond, ColumnEdgeSecond) avgLeadWidth := sum(IntraDistance)/|IntraDistance| avgLeadDistance := sum(InterDistance)/|InterDistance| numLeads := |

14、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

15、, 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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号