工业线阵相机Piranha4_CC-08K050使用总结

硬件型号

工业线阵相机型号:Piranha4_CC-08K050
采集卡型号:OR-Y4C0-XMX00

硬件连接:工业相机需要连接12V到24V电源,使用一个220V转24V的开关电源。使用数据使用cameralink medium/full,需要使用两根cameralink线连接到采集卡。

软件安装

在相机厂商官网可以下载
https://www.teledynedalsa.com/en/products/imaging/vision-software/sapera-lt/download/
填写信息,可以进行下载。
安装Sapera_LT_8.30_SDK,该软件包含开发者工具和相机配置工具。
最新版8.41一直下载不成功,只能使用网上流传的较低的版本8.30。

自带软件Sapera CamExpert使用

打开软件,选择采集卡设备和要使用的cameralink设备,选择相机设备,相机设备描述文件包含在相机硬件中,第一次使用可以使用做的功能检测相机的功能。相机连接成功,可以进行参数的设置和采集的控制。

程序控制

设备连接

在程序中控制线阵相机并把采集的图像用opencv显示出来。
例程中设备的连接通过菜单来选择,在实际使用时可以直接连接已知的设备,对代码做如下修改

	UINT32   acqDeviceNumber;
	char* acqServerName = new char[CORSERVER_MAX_STRLEN];
	char* configFilename = new char[MAX_PATH];

	acqDeviceNumber = 1;
	const char* acqServer = "Xtium-CL_MX4_1";
	const char* configFile = "C:\\Program Files\\Teledyne DALSA\\Sapera\\CamFiles\\User\\T_P4-CC-08K050_(Piranha_4)_RGB8_Default.ccf";
	
	strcpy(acqServerName, acqServer);
	strcpy(configFilename, configFile);

把采集卡名称,相机配置文件都设置为固定的。

图像显示

根据例程,可以实现图像的显示,这是SDK自带的一个View控件。如果要把SDK中的图像buffer转为opencv可以操作的格式,使用如下代码:
在static void XferCallback(SapXferCallbackInfo* pInfo)函数中:

	SapView* pView = (SapView*)pInfo->GetContext();
	SapBuffer* buffer = pView->GetBuffer();

	BYTE pData;
	void* pDataAddr = &pData;
	BOOL success = buffer->GetAddress(&pDataAddr); //static_count

	int width = buffer->GetWidth();
	int height = buffer->GetHeight();
	SapDataFRGB* rgb;

	cv::Mat img = cv::Mat::zeros(cv::Size(width, height), CV_8UC4);
	memcpy(img.data, pDataAddr, width * height*4);

	cv::Mat show;
	cv::resize(img, show, cv::Size(800, 200));
	cv::imshow("show", show);
	cv::waitKey(1);

参数控制

SDK中参数控制不能成功,在使用
SapFeature feature(acqServerName);
类的时候,程序运行时报错。
只能在CamExpert中配置好后保存到ccf配置文件中,在c++中加载这个配置文件。

发布了113 篇原创文章 · 获赞 132 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/iamqianrenzhan/article/details/97795685
今日推荐