Dalsa 相机参数设置以及采集

1、定义成员变量

SapAcqDevice		*m_pAcqDevice;
SapBufferWithTrash	*m_pBuffers;
SapTransfer			*m_pAcqDeviceToBuf;
BayerEncode m_bayer_encode;
static void NanoXferCallback(SapXferCallbackInfo *pInfo);

2、Oninitidialog中设置参数以及连接

//相机连接
m_pAcqDevice = new SapAcqDevice(SapLocation(1,0), FALSE);
m_pBuffers	= new SapBufferWithTrash(10,m_pAcqDevice);
m_pAcqDeviceToBuf = new SapAcqDeviceToBuf(m_pAcqDevice,m_pBuffers,NanoXferCallback, this);

BOOL b=m_pAcqDevice->Create();	
if(b)
	InsertListBox("相机连接成功!");
else
	InsertListBox("相机连接失败!");

m_pAcqDevice->SetFeatureValue("Width",1280);
m_pAcqDevice->SetFeatureValue("Height",1024);

b=m_pBuffers->Create();
b=m_pAcqDeviceToBuf->Create();

m_pAcqDevice->SetFeatureValue("TriggerMode",0);
b = m_pAcqDevice->SetFeatureValue("ExposureTime",(double)200);
if(b)
	InsertListBox("曝光时间设置成功!");
else
	InsertListBox("曝光时间设置失败!");

m_pAcqDevice->SetFeatureValue("Gain", (double)3);
b = m_pAcqDevice->SetFeatureValue("AcquisitionFrameRate", (double)theApp.m_iHZ);
if(b)
	InsertListBox("帧率设置成功!");
else
	InsertListBox("帧率设置失败!");

3、回调函数中保存图片

void CTrainNumberIdentificationDlg::NanoXferCallback(
SapXferCallbackInfo *pInfo)
{
CTrainNumberIdentificationDlg *p =
(CTrainNumberIdentificationDlg * )pInfo->GetContext();
BYTE *pData = NULL;
CString strCurImageName = _T("");
if(theApp.m_strDeviceName == “1”)
strCurImageName.Format("%s%d.jpg",theApp.m_strPicPath,theApp.m_nPicorder);
else
strCurImageName.Format("%s2-%d.jpg",theApp.m_strPicPath,theApp.m_nPicorder);

if (!pInfo->IsTrash())
{
	p->m_pBuffers->GetAddress((void **)&pData);
	BYTE *pDataJPGIn = new BYTE[4000000];
	{
		//m_image_compress.PushImageData(pData,m_pBuffers->GetWidth(),m_pBuffers->GetHeight(),
		//										((m_pBuffers->GetPixelDepth())/8),strCurImageName);
		p->m_bayer_encode.gp_bayer_decode(pData,1280,1024,pDataJPGIn,
														BAYER_TILE_RGGB);

		JSAMPROW row_pointer[1] = {NULL};			
	int row_stride = 0;	
	struct jpeg_compress_struct jcs;
	struct jpeg_error_mgr jem;
	FILE *pSaveFile = NULL;
	fopen_s(&pSaveFile,strCurImageName,"wb");

	jcs.err = jpeg_std_error(&jem);
	jpeg_create_compress(&jcs);
	jpeg_stdio_dest(&jcs, pSaveFile);

	jcs.image_width = 1280; 			
	jcs.image_height = 1024;
	jcs.input_components = 3;			 
	//if (1 == pImageInfo->m_nChannel)
	//{
	//	jcs.in_color_space = JCS_GRAYSCALE; 
	//}
	//else
	{
		jcs.in_color_space = JCS_RGB;
	}
	jpeg_set_defaults(&jcs);	
	jpeg_set_quality(&jcs,80,true);
	jpeg_start_compress(&jcs,TRUE);
	row_stride = jcs.image_width*(3);	
	
	//if(MirrorImage(pImageInfo,pImageInfo->m_nFlip))
	{
		while (jcs.next_scanline < jcs.image_height) 
		{
			row_pointer[0] = &(pDataJPGIn)[jcs.next_scanline*row_stride];
			jpeg_write_scanlines(&jcs,row_pointer,1);
		}
	}
	jpeg_finish_compress(&jcs);
	jpeg_destroy_compress(&jcs);
	fclose(pSaveFile);
	pSaveFile = NULL;
}
if(pDataJPGIn)
	delete pDataJPGIn;
}
else
{
	//pCamCtrl->m_camera_log.LogErr(_T("Camera UserID = %s,出现丢帧:%d\n"),
	//							  pCamCtrl->m_strUserID,pInfo->GetEventCount());  
}

//入队列
EnterCriticalSection(&(theApp.m_CS)); 	
theApp.g_grab_image_queue.push(strCurImageName);
LeaveCriticalSection(&(theApp.m_CS));
strCurImageName+="\n";
g_logQueue.Log(strCurImageName);
theApp.m_nPicorder++;

}

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: dalsa相机采集显示程序是一款用于控制和管理dalsa相机设备的软件应用程序。dalsa相机采集显示程序支持连接dalsa相机设备,并提供实时的采集、显示和处理图像的功能。用户可以通过该程序来设置dalsa相机的参数、调节曝光时间、帧率、增益等,以获得更好的图像质量。同时,该程序提供了多种图像处理算法选择,供用户在采集后进行图像处理,例如颜色滤波、图像增强、直方图均衡化等,用于改善图像质量或提取特定信息。此外,dalsa相机采集显示程序还支持视频流录制和截图功能。录制的视频可以保存为AVI文件格式,截取的图像可以保存为BMP、JPEG或PNG等格式的图像文件。总之,dalsa相机采集显示程序提供数据采集、实时图像显示和灵活的图像处理功能,适用于各种工业、科研和医疗等不同领域的应用需求。 ### 回答2: dalsa相机采集显示程序是一个用于控制和操作dalsa相机的软件程序。这个程序允许用户对相机进行设置,如采集模式、曝光时间、增益等,并可以实时显示相机采集到的图像。用户可以在图像中进行测量、分析和处理,这对于科学研究、工业质量控制等领域非常有用。 dalsa相机采集显示程序具有用户友好的界面,使得用户可以方便地进行参数设置和图像处理。该程序还支持多种数据格式,如RAW、BMP、TIF等,可以保存和导出图像数据以进行后续分析或打印。 此外,该程序还具有一些高级功能,如自动对焦、畸变校正、直方图均衡化等。这些功能可以提高相机的性能和图像质量,使用户可以更好地满足各种应用需求。 总之,dalsa相机采集显示程序是一个功能强大、易于使用的软件工具,可以帮助用户有效地控制和操作dalsa相机,并实时获取和处理图像数据。 ### 回答3: Dalsa相机采集显示程序是一种专门用于管理Dalsa相机采集数据和显示图像的应用程序。该程序基于Dalsa相机的软件开发工具包(SDK)开发,可以在Windows和Linux操作系统上运行。 使用Dalsa相机采集显示程序,用户可以方便地控制相机的参数和配置,进行采集、处理和显示图像。该程序可以自动检测已连接的Dalsa相机并列出相机属性,允许用户设置曝光时间、增益、帧率等参数,并可以在实时采集数据时直接显示图像。此外,该程序还支持图像的基本处理功能,如调整亮度、对比度、伽马校正等。 除此之外,Dalsa相机采集显示程序还支持高级功能,例如时间同步采集、多相机同步采集、区域感兴趣(ROI)采集等,使得用户在复杂应用场景下能够更加灵活地应用Dalsa相机。 总之,Dalsa相机采集显示程序是一种功能齐全、易于使用的软件工具,旨在帮助用户更加高效地管理并处理Dalsa相机采集的图像数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码猿杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值