首页 > 其他分享 >根据CXP XML文件配置相机

根据CXP XML文件配置相机

时间:2024-02-29 13:22:54浏览次数:21  
标签:CXP XML Addr xml int ImageFormatControlBase 相机 AcquisitionControlBase

 

1     说明

GenICam 定义了相机需要实施一个xml文件用于描述相机的功能、寄存器等详细信息,有了这些信息,host才能利用这些信息完成对相机的配置。

 

对于CoaxPress 接口的Device相机而言,xml信息是如何存储的呢?

Xml 一般情形下都会存在bootstrap 寄存器的用户区间内。

1.1    为什么要xml

 

 

 

1.2    xml存在哪里

 

2     如何读出xml文件

利用标准采集卡及其对应的SDK应该都可以导出xml配置文件。

2.1    华睿相机

我们以kaya 的采集卡为例进行说明。

 

 

 

图 2‑1 kaya 采集卡及其配套SDK VISION POINT获取相机信息

 

导出其xml文件即可。

 

 

 

该相机型号为华睿 A9B57CX200

 

 

 

图 2‑2 华睿 A9B57CX200 4 通道6.25Gbps CoaXPress

 

2.2    海康相机

 

 

 

图 2‑3 HK MVGY1004采集卡 MVS界面

 

选中相机右键即可保存相机的xml文件

 

 

 

 

图 2‑4 HK CXP 属性

 

 

 

图 2‑5 相机拍摄画面

 

 

图 2‑6 海康大面阵相机

2.3    Admic相机

 

 

图 2‑7 Admic 相机连接

 

 

 

图 2‑8 Admic 小相机

 

 

3     SDK demo 如何根据xml配置相机

 

以huarui_A9B57CX200.xml 为示例进行说明,如何在SDK demo中完成相机寄存器的配置。

 

3.1    配置图像格式

首先查看相机格式寄存器地址。

 

上图意思是说,PixelFormatReg地址是在ImageFormatControlBase 基地址基础上偏移0x0030,对应实际地址为ImageFormatControlBase + 0x0030, ImageFormatControlBase为0x30010000。

那么向寄存器写入什么值呢?如下图所示,如果要配置成Mono8,那么PixelFormatReg就要写入0x01080001.

 

那么怎么写入呢?

在SDK Demo中,如何完成这个配置呢?

调用 WRITE_DEVICE_REG (int address, int value) 即可,如果要读出数据,调用 int read_value = READ_DEVICE_REG(int address) 即可。

 

在什么位置完成相机的设置呢?

应该在设备链接建立之后配置。

3.2    配置曝光时间

 

根据附录示例,曝光时间参数地址 AcquisitionControlBase + 0x0058, //int Addr_ExposureTime;

那么对应增加WRITE_DEVICE_REG (0x30020000+ 0X58, exposure_time), 通常相机单位是us。

曝光模式也是类似的设置。

 

 

4     附录

以huarui_A9B57CX200.xml 为示例

//huarui A9B57CX200 5000*5000

const CameraRegisters CameraRegistersVendorHuarui = {

#define AcquisitionControlBase                0x30020000

       AcquisitionControlBase + 0x0000,//int Addr_AcquisitionMode;

       AcquisitionControlBase + 0x0004,      //int Addr_AcquisitionStart;// 1

       AcquisitionControlBase + 0x0008,      //int Addr_AcquisitionStop  ;// 1

       AcquisitionControlBase + 0x000c,      //int Addr_AcquisitionBurstFrameCount;// 1

       AcquisitionControlBase + 0x0010,      //int Addr_AcquisitionFrameRate;

       AcquisitionControlBase + 0x0014,//int AcquisitionStatusAcq

              //int Addr_AcquisitionFrameRateEnable;

              //int Addr_AcquisitionFrameRateMax;

              ////#define ResetAll                                  0x00008300//resets the camera to its power up state

       AcquisitionControlBase + 0x0020,//int Addr_TriggerMode     ; //sel==1 ¹Ì¶¨ÉèÖÃ

       AcquisitionControlBase + 0x0030,      //int Addr_TriggerSource;

       AcquisitionControlBase + 0x0038,      //int Addr_TriggerActivation;

       AcquisitionControlBase + 0x0028,//int Addr_TriggerSoftware;

       AcquisitionControlBase + 0x003c,      //Addr_TriggerDelay

 

       AcquisitionControlBase + 0x0048,      //int Addr_ExposureMode;

       AcquisitionControlBase + 0x0050,      //int Addr_ExposureTimeMinReg;

       AcquisitionControlBase + 0x0054,      //int Addr_ExposureTimeMaxReg;

       AcquisitionControlBase + 0x0058,      //int Addr_ExposureTime;   

 

#define AnalogControlBase                      0x30030000

              AnalogControlBase + 0x001C,//int Addr_BlackLevel;//Controls the analog black level 0-255

              AnalogControlBase + 0x000C,//int Addr_AnalogGain;//Defines the analog Gain in discrete steps.enum x1 x2 x4

              //

              //

#define ImageFormatControlBase                   0x30010000

       ImageFormatControlBase + 0x0010,//int Addr_Width            ;

       ImageFormatControlBase + 0x001c,//int Addr_Height           ;

       ImageFormatControlBase + 0x0028,//int Addr_OffsetX          ;

       ImageFormatControlBase + 0x002C,//int Addr_OffsetY         ;

       ImageFormatControlBase + 0x0030,//int Addr_PixelFormat   ;

       ImageFormatControlBase + 0x0004,//int Addr_SensorHeight ;

       ImageFormatControlBase + 0x0674,//int Addr_SensorWidth ;

       ImageFormatControlBase + 0x003c,//int Addr_TEST_IMAGE_SLECTOR;//TestImageSelector

              //

#define TransportLayerControlBase          0x30040000

       TransportLayerControlBase + 0x4,//int Addr_TapGeometry   ; //0x0004

       TransportLayerControlBase + 0x301C,//int Addr_Image1StreamID;      

};

标签:CXP,XML,Addr,xml,int,ImageFormatControlBase,相机,AcquisitionControlBase
From: https://www.cnblogs.com/xingce/p/18043466

相关文章

  • 学习之XML
    一XMLXML是EXtensibleMarkupLanguage的缩写,翻译过来就是可扩展标记语言。所以很明显,XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签。可扩展三个字表面上的意思是XML允许自定义格式。但这不代表你可以随便写。在XML基本语法规范的基础上,你使用的那些第三......
  • VisionPro相机掉线问题
    最近有一个项目用到visionpro,遇到一个问题记录一下。就是相机频繁掉线。报错信息:在网上查找原因,关闭防火墙、设置巨帧模式、调大接收缓存区都试过,没有改善。因为其他原因,我们中途换了海康相机。但是两款相机都有掉线的问题。所以排除相机的因素。 并且这个项目我们有两台......
  • 关于pom.xml各种起步依赖
     <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/P......
  • 【Spring Framework】IoC容器、依赖注入 + 基于XML && 基于注解 && 基于Java Config配
    概念IoC,InversionofControl,控制反转:将对象的控制权交由第三方统一管理DI,DependencyInjection:依赖注入,使用反射技术,是一种IoC的实现SpringIoC容器:用于统一创建与管理对象依赖XML管理对象(bean):applicationContext.xmlSpring框架使用流程-基于XML配置IoC容器1.导入spring......
  • Spring系列之(二)Spring基于XML的IOC实例
    Spring基于XML的IOC实例将改进后的工厂模式通过Spring来实现,解析配置文件、创建仓库,将对象存入仓库的过程都由Spring来做,我们只需要配置好配置文件,获取仓库中的对象即可1.在pom中引入Spring环境<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.o......
  • Halcon无法连接Basler相机及图像不稳定的解决办法
      情况一:出现检测图片接口可以检测到GigE接口,但连接时显示不能初始化。解决办法:这种首先确保相机网口连接稳定,并在Basler的自带驱动软件Pylon中将TriggerMode改为Off(Halcon中也可在参数中更改)。然后打开——控制版面——系统和安全——WindowsDefender防......
  • pom.xml详解
    pom.xml是Maven项目的核心配置文件,用于描述项目的基本信息、依赖关系、构建配置等。下面是对pom.xml文件中常见元素的详解:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocat......
  • [DotnetSec]XmlSerializer 反序列化 分析
    Dotnet-XmlSerializer反序列化序列化和反序列化的演示Demo参考微软的文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer?view=net-5.0XmlSerializer命名空间:System.Xml.Serialization程序集:System.Xml.XmlSerializer.dll演示......
  • Spring启动流程XML版(源码)
    1.XML方式配置bean启动Spring的核心类: ClassPathXmlApplicationContext-> AbstractXmlApplicationContext 类结构如下: 核心方法: refresh()方法, 刷新容器, 包含12个核心子方法, 如下: 方法1:prepareRefresh();作用:容器刷新前的准备工作方法2: ConfigurableL......
  • 相机内参外参的概念
    焦距也称为焦长,是光学系统中衡量光的聚集或发散的度量方式,指从透镜中心到光聚集之焦点的距离。亦是照相机中,从镜片光学中心到底片、CCD或CMOS等成像平面的距离。具有短焦距的光学系统比长焦距的光学系统有更佳聚集光的能力。内参(IntrinsicParameters):内参是描述相机内部属性的参......