DALSA线阵CCD相机开发 之 opencv读取图片

SDK的下载

Sapera_LT_8.31_SDK 百度网盘下载地址:链接:密码:ckm7。

SDK的安装

解压运行.exe文件,按照提示确定,下一步即可。

帮助文档和demo

如果要获得完整的帮助文档和demo,在SDK安装时选择full安装,路径可以自己选择,默认路径为 C:\Program Files\Teledyne DALSA\。

主要demo简介

在C:\Program Files\Teledyne DALSA\Sapera\Demos\Classes\VC中提供了多个开发Demo供用户参考。

  • Grab Demo (Dialog Box Interface 对话框)
    路径:\Sapera\Demos\Classes\Vc\GrabDemo\Release\GrabDemo.exe
    功能:
    1.显示了基本的采集功能
    2.允许获得连续或单帧图像
    3.同时调整采集参数

  • Grab Demo (Single Document Interface 单文档)
    路径:\Sapera\Demos\Classes\Vc\GrabDemo\Release\GrabDemoSDI.exe
    功能:
    1.显示了基本的采集功能
    2.允许获得连续或单帧图像
    3.同时调整采集参数

  • Sequential Grab Demo
    路径:\Sapera\Demos\Classes\Vc\SeqGrabDemo\Release\SeqGrabDemo.exe
    功能:
    1.采集序列图像至内存而后显示
    2.程序允许录制多段视频
    3.并可存储、导入AVI文件
    4.每一图像存储于不同buffer中
    5.可通过对话框设置buffer大小等参数

  • Bayer Demo
    路径:\Sapera\Demos\Classes\Vc\BayerDemo\Release\BayerDemo.exe
    功能:
    1.显示Bayer 转换功能
    2.进行Bayer转换参数设置

  • Flat-field Demo
    路径:\Sapera\Demos\Classes\Vc\FlatFieldDemo\Release\FlatFieldDemo.exe
    功能:
    1.显示平场校正功能
    2.平场校正Flat FieldCorrection (FFC) 包括调整模式噪声FixedPattern Noise (FPN),像素置换 Pixel Replacement, Photo Response Non Uniformity (PRNU), 和斑点校正 Shading Correction.

  • I/O Demo
    路径:\Sapera\Demos\Classes\Vc\IODemo\Release\IODemo.exe
    功能:
    1显示一般I/O设备的使用
    2.允许监视当前输入输出状态
    3.改变高低极性状态;允许监视输入中断并记录中断数

  • GigE-Vision Camera Demo
    路径:\Sapera\Demos\Classes\Vc\GigeCameraDemo\Release\GigeCameraDemo.exe
    功能:怎样使用DALSAGigE Vision™ 相机获得图像. 可导入相机配置文件

使用opencv读取图片

以 GigeCameraDemo 为例,找到 XferCallback 函数,修改代码如下:

void CGigeCameraDemoDlg::XferCallback(SapXferCallbackInfo *pInfo)
{
	CGigeCameraDemoDlg *pDlg= (CGigeCameraDemoDlg *) pInfo->GetContext();

   // If grabbing in trash buffer, do not display the image, update the
   // appropriate number of frames on the status bar instead
   if (pInfo->IsTrash())
   {
      CString str;
      str.Format(_T("Frames acquired in trash buffer: %d"), pInfo->GetEventCount());
      pDlg->m_statusWnd.SetWindowText(str);
   }

   // Refresh view
   else
   {
	   BYTE pData;
	   void* pDataAddr = &pData;
	   BOOL success = pDlg->m_Buffers->GetAddress(static_count, &pDataAddr);
	   int width = pDlg->m_Buffers->GetWidth();
	   int height = pDlg->m_Buffers->GetHeight();
	   cv::Mat img = cv::Mat::zeros(cv::Size(width, height), CV_8U);
	   memcpy(img.data, pDataAddr, width*height);
	   //Find_and_Draw_LeftLines(img, 10, 150, 5, left_deta_width);
	   //line(left_pic, cv::Point(left_detect_width, 0), cv::Point(left_detect_width, 32), cv::Scalar(255, 255, 0), 2, 4);
	   //cv::imshow("image", left_pic);
	   cv::imshow("image", img);
	   cv::waitKey(1);
   }
}

运行代码即可。

效果图

运行 GigeCameraDemo 后,产生如下界面。可以选择Acquisition Server和Acquisition Device,也可以选择CCF配置文件,默认是初始化的配置。DALSA线阵CCD相机开发 之 opencv读取图片_第1张图片

点击OK按钮进入相机的操作界面,点击Grab进行图像采集,此处设置了图片大小为4096*32,使用opencv中imshow函数显示出来,效果图如下。

DALSA线阵CCD相机开发 之 opencv读取图片_第2张图片

你可能感兴趣的:(opencv)