Canon EDSDK Liveview的示例C代码?

Canon EDSDK Liveview的示例C代码?,第1张

概述是否有人使用佳能EDSDK实现LiveView的示例C代码?文档中的示例代码看起来很棒,直到您完成此 *** 作: // // Display image // 是的,就是这样.它们没有显示如何使用从相机检索到的数据将图像BLT到窗口.他们只是说,“显示图像”.谢谢,佳能. 我已经搜索了互联网(包括这个论坛),但我还没有找到一个C代码示例来说明如何执行此 *** 作.我希望避免使用MFC,VB,托管代码或C# 是否有人使用佳能EDSDK实现liveVIEw的示例C代码?文档中的示例代码看起来很棒,直到您完成此 *** 作:
// // display image //

是的,就是这样.它们没有显示如何使用从相机检索到的数据将图像BLT到窗口.他们只是说,“显示图像”.谢谢,佳能.

我已经搜索了互联网(包括这个论坛),但我还没有找到一个C代码示例来说明如何执行此 *** 作.我希望避免使用MFC,VB,托管代码或C#.当然可以在香草C中做到这一点,对吗?香草C也很好.

谢谢,
FredP

解决方法 它们没有告诉您有两个功能:
1)EdsGetPointer
2)EdsGetLength

这将分别为您提供指向JPEG流开头和大小的指针.

一旦你有这个使用libJPEG Turbo解压缩,libjpeg只是不够快.

解压缩后,可以使用opencv显示图像.

bool CanonCamera::downloadliveVIEwImage(){    EdsError err = EDS_ERR_OK;    EdsEvfImageRef image = NulL;    EdsstreamRef stream = NulL;    unsigned char* data = NulL;    unsigned long size = 0;    err = EdsCreateMemoryStream(0,&stream);    if (err != EDS_ERR_OK) {        cout << "Download live VIEw Image Error in Function EdsCreateMemoryStream: " << err << "\n";        return false;    }    err = EdsCreateEvfImageRef(stream,&image);    if (err != EDS_ERR_OK) {        cout << "Download live VIEw Image Error in Function EdsCreateEvfImageRef: " << err << "\n";        return false;    }    err = EdsDownloadEvfImage(cameraRef,image);    if (err != EDS_ERR_OK) {        cout << "Download live VIEw Image Error in Function EdsDownloadEvfImage: " << err << "\n";        return false;    }    err = EdsGetPointer(stream,(EdsVoID**)& data);    if (err != EDS_ERR_OK) {        cout << "Download live VIEw Image Error in Function EdsGetPointer: " << err << "\n";        return false;    }    err = EdsGetLength(stream,&size);    if (err != EDS_ERR_OK) {        cout << "Download live VIEw Image Error in Function EdsGetLength: " << err << "\n";        return false;    }    // libjpegTurbo(data,size);    // display RGB image in opencv    if (stream != NulL) {        EdsRelease(stream);        stream = NulL;    }    if (image != NulL) {                    EdsRelease(image);        image = NulL;    }    data = NulL;    return true;}
总结

以上是内存溢出为你收集整理的Canon EDSDK Liveview的示例C代码?全部内容,希望文章能够帮你解决Canon EDSDK Liveview的示例C代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1240539.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存