关于Canon Edsdk 2.14API与C++的一些问题
Some questions about Canon Edsdk 2.14API with C++
我是一名使用EDSDK 2.14的C++新程序员。我正在使用佳能EOS 5D Mark II,我有一些问题要做(我正在启动api,相机会话,处理程序,设置容量,我的程序拍照,设置相机的正确参数,我正在使用windows消息来处理一些事件):
1) 我需要将照片保存在主机中,我这样做是正确的,但相机只允许在内部缓冲区中保存8张照片,我需要测试一些参数组合(AV、TV和ISO SPEED)。当我按下‘s’时,我会循环拍摄10张照片(带有windows消息、回调),但只拍摄了8张照片,其他照片都有忙错误,所以我想这是内部缓冲区。如何在一个windows事件中正确更改参数,拍摄8张以上的照片?ps:我试图重新打开会话(再次使用相机关闭和打开会话),但这不是一个好主意,因为传输(下载图像)的事件句柄只在对象释放时设置。
2) 我试图获得一张照片并下载,但不可能,当我按下‘s’时,程序等待拍摄8张照片,然后相机将事件回调发送到句柄以下载所有图像。我想按‘s’,程序拍一张照片,下载并拍摄其他照片,如果可能的话,我该怎么做?
3) 如果我制定了一个方法来设置AV,TV,ISO速度参数,这将被及时发送到相机拍摄照片,或者我需要等待相机的回调。如果我需要这样的东西,我需要使用什么事件?ps:我的程序都是异步的,我不使用线程,只使用回调和windows事件。
4) 我在互联网上搜索,想找到正确的焦点,但有些人说这只有在实时视图中才可能,我不能在我的应用程序中使用它。是否可以在没有实时视图的情况下更改焦点?ps:因为我需要一张好照片和我的程序的相机自动对焦,没有像EOS实用程序那样做同样质量的图像,我在想他们是否在拍摄的图像中进行了pos处理
如果我有更多的问题或我解决了问题,我会回答所有的社区,因为太多的人正在使用这个API,这不是太微不足道。对不起,我的英语不是母语,但我正在尽力做到最好。
ad 1)你需要在相机的内部缓冲区溢出之前下载图像,就像你在2 中尝试的那样
ad 2)确保您的程序在发送第一个快照命令后,以某种方式返回到"全局"事件循环中。这将使EDSDK有机会处理相机事件,并将"下载可用"事件发送到您的回调。从那里拿走
ad 3)不能保证是否应用这些事件,您宁愿附加到属性更改事件(kEdsPropertyEvent_PropertyChanged
)或在之后的某个时间轮询
广告4)您可以使用liveview和基于镜头的AF。对于后者,请探索kEdsCameraCommand_ShutterButton_Halfway
想分享你项目的目标吗?
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 使用mongocxx驱动程序时包含头文件问题