Dalsa线扫相机SDK开发-小试牛刀(1)
拿到了dalsa相机,可以用Sapera软件配置相机,进行图像采集。但是自己开发的话就得撸起袖子写代码了,查了两篇不错的博文,作为指导。
Sapera帮助文档 - 《好好先生》专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/liubing8609/article/details/68485919
DALSA线阵CCD开发纪要(C++) - simplelove17的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/simplelove17/article/details/45393725
1、首先搞清楚要实现什么功能。
现在的应用是用编码器的脉冲触发相机来进行逐行扫描。
以C:\Program Files\Teledyne DALSA\Sapera\Demos\Binaries 目录下的GigeCameraDemo.exe为例。
1)双击运行程序之后,首先是弹出一个界面让你选择相机和配置文件。也就是说,你可以先用Sapera把相机配置好,然后自己开发程序时只需要加载这个配置文件就行了,不用在自己的程序里对相机做配置。

2)之后进入取图界面

点击Grab按钮可以获取一帧图像(注意编码器给转动给相机脉冲信号),Snap是实时显示图像。
这时候还可以点击Load Config按钮来更换相机配置文件。
这些功能在测试阶段基本够用了。
2、然后是Visual Studio 开发C++的第一步,工程配置。
配置Dalsa的过程跟配置Opencv类似,主要是参考下文:
Sapera帮助文档 - 《好好先生》专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/liubing8609/article/details/68485919
具体过程如下:
1)以GigECameraDemo为例,首先打开Debug 64的配置界面

设置包含目录

设置库目录

附加库目录

静态链接库名称(注意这里原来有halcon.lib,但是我的电脑里并没有装halcon,导致运行时报出“找不到halcon.lib”这样的错误,我就把halcon.lib从这个列表中移除了)

如果编写GUI程序还得添加SapClassGui.lib和SapClassGuiD.lib。

3、代码编写,参考dalsa的例程。
这里直接用Dalsa的代码做的测试,为了验证代码环境配置是否成功,对Demo做了一点改动。
在GigeCameraDemoDlg.cpp文件中OnInitDialog()函数中添加了一句代码:
BOOL CGigeCameraDemoDlg::OnInitDialog()
{
CRect rect;
MessageBox(_T("Welcome to GigE Camera Demo!"));
CDialog::OnInitDialog();
…
4、运行与调试。
我是直接打开的C:\Program Files\Teledyne DALSA\Sapera\Demos\Classes\Vc目录下的SapDemos_2012.sln解决方案文件,进到VS之后会看到所有的程序都在这一个解决方案里。

所以生成的时候一定要选中自己要调试的项目再点生成啊,不然会把整个解决方案都生成一遍,非常耗时。

生成成功之后直接在VS里按F5,或点击运行按钮,会报下面的错误。

正确的做法是进到Bubug 64 目录下找到生成好的exe文件,双击运行。。。

结果就出现了之前修改的效果(简单粗暴了点)

Dalsa线扫相机SDK开发-小试牛刀(1)的更多相关文章
- DALSA网口线扫相机SDK开发详解例程(C#版)
首先吐槽一句,官方的demos写的真的不好,坑爹啊.对于小白来说,开发官方demos为我所用太难了.为什么呢?因为它Dalsa的DALSA.SaperaLT.SapClassBasic.dll中,不仅 ...
- Dalsa线扫相机SDK下载和安装
1.首先去官方网站下载SDK Support Downloads - Teledyne DALSA http://www.teledynedalsa.com/imaging/support/downl ...
- VisionPro连接Dalsa线扫相机
1 环境配置 硬件:编码器(提供编码信号的PLC) 线扫相机 镜头 相机线缆 图像采集卡(Dalsa_Xcelera-CL_PX4 Dual) 软件:VisionPro 8.2 VisionPro软件 ...
- Dalsa线扫相机配置-一台工控机同时连接多个GigE相机
如图,我强悍的工控机,有六个网口. 实际用的时候连了多台相机,为了偷懒我就把六个网口的地址分别设为192.168.0.1~192.168.0.6,以为相机的IP只要设在192.168.0这个网段然后随 ...
- DALSA相机SDK不完全教程
1.SDK介绍 Dalsa是全球顶尖的CCD/CMOS芯片和相机制造商,总部位于加拿大,我使用的是 Dalsa的 Genie_TS_M1920(黑白)和 Genie_TS_C2048(彩色)两款工业相 ...
- Kinect for Windows SDK开发入门(二):基础知识 上
原文来自:http://www.cnblogs.com/yangecnu/archive/2012/03/31/KinectSDK_Application_Fundamentals_Part1.htm ...
- 微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享. ...
- Kinect for Windows SDK开发入门(15):进阶指引 下
Kinect for Windows SDK开发入门(十五):进阶指引 下 上一篇文章介绍了Kinect for Windows SDK进阶开发需要了解的一些内容,包括影像处理Coding4Fun K ...
- Zedboard(二)使用Vivado+SDK开发嵌入式应用程序——实例一
本次介绍用Vivado构建Zedboard开发板的硬件平台+SDK开发应用程序(Zedboard裸机开发) 过程如下: 一.运行Vivado,建立新工程 指定好工程路径,下一步,选择RTL Proje ...
随机推荐
- Matlab中插值函数汇总(上)
Matlab中插值函数汇总分上下两个部分,主要整合自matlabsky论坛dynamic发表于2009-2-21 21:53:26 的主题帖,以及豆丁网rickoon上传的教材第8章<插值,拟合 ...
- jQuery实现锚点滑动定位
go=function(index){ var top = $('#caseNewGuide' + index).offset().top; $('html, body').animate({ scr ...
- ftp指令集
想进行ftp相关编程,得了解ftp的指令集. 可参考:http://blog.csdn.net/weiyuefei/article/details/51758288 ftp的命令和指令集不同: 命令是 ...
- C++中纯虚函数
1.纯虚函数 virtual ReturnType Function()= 0; 纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义.凡是含有纯虚函数的类叫做抽象类 ...
- [leetcode]236. Lowest Common Ancestor of a Binary Tree 二叉树最低公共父节点
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...
- ROS Learning-008 beginner_Tutorials ROS话题
ROS Indigo beginner_Tutorials-07 ROS话题 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LT ...
- php 中的信号处理
首先我们需要了解几个函数 pcntl_signal 安装信号处理器,也就是当指定信号发生时,调用函数. pcntl_alarm 指定秒数后向进程发送SIGALRM信号. posix_getpi ...
- dede添加自定义函数
在dede安装目录下的include/extend.func.php添加自定义函数: /** * 获取文章第一张图片 */ function getFirstImg($arcId) { global ...
- Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例
1.重写equals方法实例 部分代码参考http://blog.csdn.net/wangloveall/article/details/7899948 重写equals方法的目的是判断两个对象 ...
- socket编程介绍
Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...