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);
   }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
运行代码即可。

效果图
运行 GigeCameraDemo 后,产生如下界面。可以选择Acquisition Server和Acquisition Device,也可以选择CCF配置文件,默认是初始化的配置。

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

 

你可能感兴趣的:(短视频)