我是一个新的程序员在C++与EDSDK2.14。我正在使用佳能EOS 5D Mark II,我有一些问题要做(我正在启动api、相机会话、处理程序、设置容量、我的程序拍摄照片、为摄像机设置正确的参数,并且我正在使用windows消息来处理一些事件):
1)我需要保存在主机上的照片,我这样做是正确的,但相机只允许8张照片在内部缓冲区,我需要测试一些参数组合(AV,电视和ISO速度)。当我按下“s”(带有windows消息,回调)时,我做了一个循环来拍摄10张照片,只拍了8张照片,其他照片都有忙错误,所以我猜这是内部缓冲区。我如何拍摄超过8张照片,更改参数正确的一个窗口事件?ps:我试图重新开放(再次用相机关闭和打开会话),但这不是一个好主意,因为传输的事件处理(下载图像)只是在释放对象时设置的。
( 2)我试着获取一张照片并下载,但是当我按下“s”时,程序等待拍摄这8张照片,然后相机将事件回调发送到手柄下载所有图像。我想按下“s”,这个程序拍摄一张照片,下载和拍摄其他的,如果可能的话,我怎么能这样做呢?
3)如果我制定一种方法来设置AV、TV、ISO的速度参数,这将被及时发送到相机上拍照,或者我需要等待类似于摄像机回调之类的东西。如果我需要这样的东西,我需要使用什么事件?ps:我的程序都是异步的,我不使用线程,只使用回调和windows事件。
( 4)我在网上搜索,想要找到正确的焦点,但有些人说,只有在直播中才有可能,我不能在我的应用程序中使用这一点。有没有可能在没有实时视图的情况下改变焦点?ps:因为我需要一个好的照片和我的程序相机的自动对焦,不是像EOS实用程序那样做同样质量的图像,我在想他们是否在拍摄的图像中有一个pos处理。
如果我有更多的问题,或者我解决了所有的问题,我会回答所有的社区,因为这太多的人使用这个API,这不是太琐碎。对不起,我的英语不是本族语,但我正在尽我所能。
发布于 2014-10-18 10:58:39
广告1)你需要在相机的内部缓冲区溢出之前下载图像,就像你在2中尝试的那样
广告2)确保你的程序,在发送第一次射击命令后,以某种方式返回到“全局”事件循环中。这将使EDSDK有机会处理照相机事件,并将“下载可用”事件发送给回调。从那里拿去
广告3)不能保证是否应用了这些事件,您宁愿附加到属性更改事件(kEdsPropertyEvent_PropertyChanged
)或轮询之后一段时间
广告4)你可以使用直播和镜头为基础的AF。对于后者,请探索kEdsCameraCommand_ShutterButton_Halfway
愿意分享你项目的目标吗?
https://stackoverflow.com/questions/25903535
复制相似问题