
// // 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代码?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)