技术文章及资料中心

ARTICLE

文章中心

产品

应用

其他

安装使用 您的位置:首页--文章中心--相机

基于DCAMAPI的滨松探测器软件二次开发

为了方便客户使用,滨松针对sCMOS相机、InGaAs相机、X射线线阵/TDI相机、X射线平板探测器等产品提供统一的驱动程序DCAMAPI,以及基于DCAMAPI的软件开发包。本文包含相关的资源下载链接,各种开发语言的开发包介绍及方便用户快速上手的Demo Code。目录如下:

1 简介与下载

2 Quick Start:拿到一张图片的数据

3 更多的Demo Code

4 FAQ


1 简介与下载


如果您手中已经有一台滨松探测器,首先可以查看此探测器是否支持DCAM-API(参考此链接中的" DCAM-API for Windows (XX.X.XXXX) Compatibility Note.pdf")。


下载DCAM-API(必须,具体参考此下载链接,及滨松提供的免费软件HCimage Live(推荐但不必须,下载链接根据链接中的说明完成DCAM-API和HCimage Live的安装,打开硬件及HCimage Live,确认相机已成功连接。


根据需要,下载您需要的SDK/开发包。

滨松提供的软件 LabView DCAM-SDK  MATLAB  DCAM-API


为国内镜像,最新版本(及英文简介)可在此链接注册登录获得。内容包含C/C++, C#, vb.NET, CUDA, MFC的多个案例。


需安装后使用。安装请参考《190430 LabView控制滨松相机安装说明》


需安装后使用。


为国内镜像,最新版本(及英文简介)可在此链接注册登录获得。.dcimg是滨松探测器的一种专有数据格式。


2 Quick Start——使用开发包,从打开相机到拿到一张图片的原始数据


您所下载的开发包中,就已经包含了完整的说明文档,以及许多的sample code——LabView、 MATLAB、 C/C++、 C#、 vb.NET、 mfc、 CUDA。下面的部分主要是面向第一次使用滨松二次开发包的朋友。我们最终的目标是让每一个希望做二次开发的用户都能够轻松地理解、尽快地上手。


这一部分将介绍我们要如何得到一张图片的原始数据。下面的视频中,我们以一个C++程序为例(案例下载),详细讲解从打开相机、设置基本参数,直到获得一个void*指针,指向相机拍下的一张图片的原始数据。


以下为各种编程语言最基础的Demo Code,用于理解探测器控制的基本流程。我们在其中加入了尽可能详细中文注释,如果仍然有不清楚的地方,可以邮件联系滨松工程师(hpc_zyz@126.com)。




连接相机后,在Visual Studio 2017中可直接调试运行。


连接相机后,在Visual Studio 2017中可直接调试运行。


需要先安装LabView开发包(参考中文安装说明),然后在LabView 2018中可调试运行


3 更多的Demo Code


 


(1)各类面阵相机、TDI相机及其他线阵相机也可以打开使用,以供参考。

(2)下面为X射线亮暗校正功能的相关演示视频:




同时可以作为理解DCAMPROP_ATTR(包含每个参数本身的各种参量)使用的案例。


以FusionBT(C15440-20UP)为例,展示sCMOS相机framebundle功能的设置方法和注意事项。其中,Form1.cs中是普通使用界面;Form2.cs中是framebundle功能的简单Demo界面。


以C15550-20UP的读出速度挡位(Readout Speed)调整为例,展示了在LabView中对相机参数的设置。案例文件在LabView2018(32位)中编写。若LabView版本不方便,可以直接参考《在LabView中设置滨松相机的各种参数》


两台相机可以是不同型号。


4台相机可以是不同型号,一个程序同时控制。此代码仅仅是一个示例,供相关二次开发时参考。


4 FAQ


Q1:如何将函数返回的DCAMERR对应到实际的问题描述?


请点击此处查看。


Q2:如何知道我手中的相机/平板探测器有哪些参数可以设置和读取?


在DCAM-SDK(下载链接)中,查看dcamsdk4/doc/camera_properties文件夹,找到对应型号的文件。


Q3:dcamcap_start(HDCAM h, int32 mode)函数中,有两个模式:DCAMCAP_START_SNAP和DCAMCAP_START_SEQUENCE。这两个模式的区别是什么?


如果使用SNAP模式,意味着相机会把图像数据往dcambuf_alloc(  )函数中开辟的内存里面填,填满了就自行停止拍照了。


如果使用SEQUENCE模式,相机依然会把图像数据往dcambuf_alloc(  )函数中开辟的内存里面填;填满之后,新的数据会覆盖之前的数据;直到程序调用dcamcap_stop(  )函数才会停止拍照。



相关工程师


 

针对以上内容,如您有任何问题,欢迎联系我们




上一个:ORCA-Quest装机手册

下一个: ORCA-FusionBT装机手册(适用型号 C15440-20UP)

×
回到顶部