Qt使用canonedsdk实现实时预览的示例代码_佳能相机.pdfVIP

Qt使用canonedsdk实现实时预览的示例代码_佳能相机.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Qt使使用用canonedsdk实实现现实实时时预预览览的的示示例例代代码码

概概述述

想要使用canon的sdk进行实时的一个预览,即LiveView功能。

前前期期准准备备

前期的一些相的连接,可以参考我之前写的文章QT使用canonsdk拍照并保存到本

实实时时预预览览步步骤骤

StartLiveView

声明一个变量来标志m_isLiveView来标识liveview是否开启。

将实时预览输出到PC上

device|=kEdsEvfOutputDevice_PC;

voidMainWindow::StartLiveView()

{

Changesettingsbecauseliveviewcannotbestarted

whencamerasettingsaresettodonotperformliveview.

开启

EdsErrorerr=EDS_ERR_OK;

uintevfMode=1;

把1写入enable

err=EdsSetPropertyData(m_camera,kEdsPropID_Evf_Mode,1,sizeof(uint),evfMode);

m_isLiveView=true;

Gettheoutputdevicefortheliveviewimage

EdsUInt32device;

err=EdsGetPropertyData(m_camera,kEdsPropID_Evf_OutputDevice,0,sizeof(device),device);

if(err==EDS_ERR_OK)

{

device|=kEdsEvfOutputDevice_PC;

err=EdsSetPropertyData(m_camera,kEdsPropID_Evf_OutputDevice,0,sizeof(device),device);

}

}

将将预预览览的的图图像像流流转转为为QImage再再转转为为Mat

QImageimg=QImage::fromData(data,length,JPG);

将图像流转为QImage格式,这个是最重要的,在网上有哪些信誉好的足球投注网站了非常久,不知道怎么利用data和length,网上的很多都是用vb

和c#处理的,没有C++的。

boolMainWindow::requestLiveViewImage()

{

EdsErrorerror=EDS_ERR_OK;

EdsStreamRefstream=NULL;

EdsEvfImageRefevfImage=NULL;

EdsUInt64length;

if(!m_isLiveView)

{

error=EDS_ERR_INTERNAL_ERROR;

qDebug()liveViewfalse;

returnfalse;

}

在主计算的内存中创建流。如果写入超出分配的缓冲区大小,则会自动扩展内存。

error=EdsCreateMemoryStream(0,stream);

if(error!=EDS_ERR_OK)

{

qDebug()(failedtocreatememorystream);

returnfalse;

}

创建一个用于获取实时取景图像数据集的对象。

error=EdsCreateEvfImageRef(stream,evfImage);

if(error!=EDS_ERR_OK)

{

qDebug()(failedtocreateEvfimage);

returnfalse;

}

下载当前处于实时取景模式的相的实时取景图像数据集。

error=EdsDownloadEvfImage(m_camera,evfImage);

if(error!=EDS_ERR_OK)

{

当相未准备好图像数据集或无法获取图像数据集时

if(error==EDS_ERR_OBJECT_NOTREADY)

{

qDebug()(failedtodownloadEvfimage,notreadyyet);

}

else

文档评论(0)

wszwtlg202 + 关注
实名认证
文档贡献者

一页纸且

1亿VIP精品文档

相关文档