Basler相机参数设置
一、Basler相机SDK简介
在编写软件连接Basler相机时,一般使用其自带的SDK进行开发,即使用自带的dll文件和参照说明书及示例代码进行开发。在安装Basler驱动程序后,在软件安装目录下找到Development\Samples文件夹,其中就包含C、C#和C++语言编写的示例代码,在Development\Documentation文件夹下则可以找到帮助文档,其中有对SDK函数及参数的详细解释。需要注意的是在安装驱动程序选择安装模式时,选择Developer模式进行安装,而不是默认的User模式,如果是User模式安装那么在安装目录下不会出现Development文件夹。
在C#文件夹下有两个文件夹,分别为Basler.Pylon和PylonC.NET,两个文件夹中的示例代码都可以对Basler相机进行控制,但Basler.Pylon中的代码提供的接口为面向对象程序接口,代码较PylonC.NET新,帮助文档中建议使用Basler.Pylon的示例代码。
二、Basler相机参数设置
相机参数一般包含拍摄图像宽度、高度、图像格式、偏移量、增益、曝光、触发方式等参数,在Basler的SDK中设置参数是通过camera.Parameters来设置,camera为Camera类的示例,Parameters类型为 IParameterCollection,提供了一系列相机参数的设置方法,参数名称列表是通过PLCamera 类来获取,示例代码如下:
using Basler.Pylon;
Camera camera = new Camera()
camera.Parameters[PLCamera.OffsetX].IsReadable;//当前OffsetX参数是否可读,返回类型为bool
camera.Parameters[PLCamera.TriggerSoftware].IsWritable;//当前TriggerSoftware参数是否可写,返回类型为bool
camera.Parameters[PLCamera.GammaEnable].IsEmpty;//当前GammaEnable参数是否存在,返回类型为bool
camera.Parameters[PLCamera.Height].GetValue();//获取当前相机高度值,返回类型为long
camera.Parameters[PLCamera.CenterX].GetValueOrDefault(false);//如果CenterX参数可读,那么返回该参数当前值,否则返回默认值
camera.Parameters[PLCamera.PixelFormat].SetValue(pixelFormats);//设置PixelFormat参数值为pixelFormats,返回类型为void
camera.Parameters[PLCamera.Width].SetValue(123, IntegerValueCorrection.Nearest);//设置Width参数值为设定值123最近的有效值(因为Width可能不支持设置为123),返回类型为void
camera.Parameters[PLCamera.GammaEnable].TrySetValue(true);//如果GammaEnable参数值可写,那么设置为设定值并返回true,否则返回false
camera.Parameters[(IntegerName)"BrandNewFeature"].TrySetToMaximum();//如果BrandNewFeature参数可读并可写,那么将BrandNewFeature参数设置为最大值,并返回true,否则返回false
三、Basler相机配置文件导出与导入
可以将Basler相机的参数设置导出到配置文件中,也可以将配置文件导入到Basler相机中。示例代码如下:
string filename = "D:/CameraParameters.pfs";
camera.Parameters.Save(filename, ParameterPath.CameraDevice);//导出配置文件
camera.Parameters.Load(filename, ParameterPath.CameraDevice);//导入配置文件