工业相机软触发取图时间测试
测试一下工业相机的软触发到拿到图像的时间
相机:万年不变的0.3MP
使用方法:QueryPerformanceCounter(ref long x);
测试选用海康相机自带回调Demo,曝光时间设置到最小(20us)
using System;
using System.Collections.Generic;
using MvCamCtrl.NET;
using System.Runtime.InteropServices;
using System.IO;
using System.Threading;
namespace Grab_Callback
{
class Grab_Callback
{
public static long timeStart = 0, timeEnd = 0;//系统计数器
public static long freq;//计数频率
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
public extern static short QueryPerformanceCounter(ref long x);
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
public extern static short QueryPerformanceFrequency(ref long x);
public static MyCamera.cbOutputExdelegate ImageCallback;
public static MyCamera device = new MyCamera();
static void ImageCallbackFunc(IntPtr pData, ref MyCamera.MV_FRAME_OUT_INFO_EX pFrameInfo, IntPtr pUser)
{
QueryPerformanceCounter(ref timeEnd);//计时
Console.WriteLine("Get one frame: Width[" + Convert.ToString(pFrameInfo.nWidth) + "] , Height[" + Convert.ToString(pFrameInfo.nHeight)
+ "] , FrameNum[" + Convert.ToString(pFrameInfo.nFrameNum) + "]");
}
static void Main(string[] args)
{
int nRet = MyCamera.MV_OK;
do
{
// ch:枚举设备 | en:Enum device
MyCamera.MV_CC_DEVICE_INFO_LIST stDevList = new MyCamera.MV_CC_DEVICE_INFO_LIST();
nRet = MyCamera.MV_CC_EnumDevices_NET(MyCamera.MV_GIGE_DEVICE | MyCamera.MV_USB_DEVICE, ref stDevList);
if (MyCamera.MV_OK != nRet)