日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Basler相机外部触发设置(Halcon)

發(fā)布時間:2023/12/15 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 Basler相机外部触发设置(Halcon) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、相機硬件接線圖

2號引腳接傳感器的觸發(fā)信號引腳,5號與傳感器共地連接。

二、pylon軟件設置

三、halcon軟觸發(fā)相機拍照
Halcon采集助手設置軟觸發(fā):

1.set_framegrabber_param (AcqHandle, 'TriggerMode', 'On')
2.set_framegrabber_param (AcqHandle, 'TriggerSource', 'Software')

還有注意就是,軟觸發(fā)不要設置grab_timeout采集超時,否則會一直卡住Halcon的,硬觸發(fā)可以開啟!
那么怎么觸發(fā)呢?點擊下面紅色方框里面的TriggerSoftWare就可以觸發(fā)采集了!

不能在Halcon里面用代碼實現(xiàn)觸發(fā)采集,因為采集圖像是同步進行的。
可以使用C#聯(lián)合Halcon開發(fā),在C#里面利用set_framegrabber_callback設置回調(diào)方式進行,Halcon里面是不支持的!

四、C#聯(lián)合Halcon實現(xiàn)外部觸發(fā)回調(diào)函數(shù)采集圖像

 1 HalconDotNet.HalconAPI.HFramegrabberCallback delegateCallback;  //定義回調(diào)函數(shù)委托
 2  
 3  
 4 //開啟相機
 5 HOperatorSet.OpenFramegrabber("GigEVision2", 0, 0, 0, 0, 0, 0, "progressive",
 6 -1, "default", -1, "false", "default", "Devin",
 7 0, -1, out hv_AcqHandle);
 8 //下面開啟硬觸發(fā)
 9 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerMode", "On");
10 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerSource", "Line1");
11 //下面設置連續(xù)采集,上升沿觸發(fā),曝光模式等
12 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "AcquisitionMode", "Continuous");
13 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerSelector", "FrameStart");
14 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerActivation", "RisingEdge");
15 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "ExposureMode", "Timed");
16 //設置曝光時間
17 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "ExposureTime", 80000.0);
18 //下面為設置用不超時
19 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "grab_timeout", -1);
20 //給委托綁定
21 delegateCallback = MyCallbackFunction;
22  
23  
24 private int test = 1;//隨便定義的一個變量,后面會取其地址帶入回調(diào)函數(shù)的user_context
25  
26  
27 //回調(diào)函數(shù)
28 public int MyCallbackFunction(IntPtr handle, IntPtr context, IntPtr user_context)
29 {
30     try
31     {
32         HOperatorSet.GrabImage(out img, hv_AcqHandle);
33         if (this.hWindowControl1.InvokeRequired)//線程親和性判定
34         {
35             this.Invoke(new MethodInvoker(() => { HOperatorSet.DispObj(img, this.hWindowControl1.HalconWindow); img.Dispose(); }));//把圖像顯示出來(這里是委托方式顯示)
36         }
37         else
38         {
39             HOperatorSet.DispObj(img, this.hWindowControl1.HalconWindow);//把圖像顯示出來
40             img.Dispose();
41         }
42         return 0;
43     }
44     catch (Exception ex)
45     {
46         //  MessageBox.Show(ex.Message);//顯示錯誤
47         return -1;
48     }
49 }
50  
51  
52 IntPtr ptr = Marshal.GetFunctionPointerForDelegate(delegateCallback);//取回調(diào)函數(shù)的地址
53 IntPtr ptr1 = GCHandle.Alloc(test, GCHandleType.Pinned).AddrOfPinnedObject();//取test變量的地址
54 HOperatorSet.SetFramegrabberCallback(hv_AcqHandle, "LineStatus", ptr, ptr1);//注冊回調(diào)函數(shù)
55 IntegralforLove/java/article/details/94722689

總結(jié)

以上是生活随笔為你收集整理的Basler相机外部触发设置(Halcon)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。