问题标签 [canon-sdk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2162 浏览

c++ - 佳能 SDK - 将图像下载到主机 PC

我正在尝试将佳能相机拍摄的图像从其 SD 卡下载到主机 PC,我已经编写了代码,以便它可以拍摄并且不再将其保存在 SD 卡上,但我在主机PC。有人有方向吗??我的主要和功能如下所示,不包括 getFirstCamera 功能。

我真的不知道回调函数等是如何工作的。所以如果有人可以提供代码片段,如果有需要修复的东西,那就太好了

0 投票
0 回答
862 浏览

edsdk - 设置自定义 LiveView 白平衡值

使用 EDSDK,我想以编程方式设置 LiveView 流的白平衡 (RGGB) 值,以及直接来自凸轮的 JPG(和 RAW)图像的白平衡。手动白平衡实时取景和离机图像的过程对我来说并不完全清楚,在 EDSDK 手册中也不是很清楚。

通过反复试验,我通过发出带有灰卡坐标的 kEdsCameraCommand_DoClickWBEvf 命令来校准 LiveView。这似乎会影响实时取景:

  • 实时取景切换到“ClickWB”(-1)白平衡设置
  • 相机设置保持不变:它不会改变相机的拍摄值。
  • 请注意,当设置为“ClickWB”时,相机上的“手动 WB”图标会消失,似乎有问题。

显然,佳能的 EOS 实用程序做的事情略有不同。使用 PTP 事件的一些跟踪和轮询,我看到:

  • 单击白平衡会向相机发送类似的 ClickWB 命令。
  • 单击“应用于拍摄的图像”时,向相机发送命令
  • 相机白平衡保持在值 6(“手动”、“白点”或“白皮书”,具体取决于上下文)。
  • Liveview 在切换到 6 时也会受到影响。
  • 跟踪显示“CPtpCamera::TranslateMWb”命令的证据,好像有一个命令来设置用户余额。
  • 显然可以检索“原始”白平衡系数,因为 EOS 显示有关系数不正确的警告。

对于 RAW 图像,我通过存储灰卡 RAW 中的白平衡系数来解决白平衡问题,并在将新图像(没有灰卡)转换为 TIFF 时重新应用这些系数。这不会影响相机上的 JPG,即拍白平衡,并且在重置后无法恢复。

断开/重新连接相机并(以编程方式)应用先前校准或存储的 WB 值时,我被卡住了。这是否可能,如果可以,我如何复制原始白平衡值。这里有谁有使用 EDSDK 手动 WBing 的经验,愿意分享分享的类型/顺序吗?

笔记:

  • 佳能对 EDSDK 不提供任何官方技术支持
  • 据报道,较旧的 SDK 包含命令(例如,在 2.5 kEdsPropID_UserWhiteBalanceData 中)。这个一定要换吗?

--- 2014 年 12 月 17 日更新 ---

我目前(间接)与佳能的 EDSDK 开发人员进行“官方”联系,目前没有通过 EDSDK 设置相机内自定义白平衡的官方方式。

0 投票
1 回答
661 浏览

c# - 佳能 EDSDK:如何下载录制的视频?

我需要在我的电脑上下载我刚刚录制的视频。我设法用图片做到了,但对于视频,我只得到一个空文件。

我已经注册了对象事件处理程序

然后,我开始录制:

对象事件处理程序:

最后,downolad

在调试模式下,方法 EDSDK.EdsDownload 永远不会结束,但是没有异常,或者返回码...

请帮忙 !

0 投票
0 回答
1019 浏览

vb.net - 如何使用 EDSDKWrapper C# 库用佳能相机拍照?

我正在使用 Canon SDK 和 EDSDKWrapper C# 库 ( https://edsdkwrapper.codeplex.com/ ) 编写一个 VB.NET 应用程序,因为我的编程技能并不完全适合处理 C 代码或处理指针、处理程序和东西。到目前为止,这是我的代码,它使用计时器在图片框中显示 LiveView 图像:

但是我怎么拍照呢?据我所知,我需要这样做:

但我不确定如何获取 inCameraRef (我相信这是我希望将命令发送到的相机的句柄)。我假设相机类中有一个属性会返回这个,但我不确定。

有没有人使用过这个包装器,或者他们可以推荐一个好的佳能 SDK 包装器?时间是一种宝贵的财富,我已经在互联网上搜索了太长时间。

0 投票
1 回答
426 浏览

c++ - cr2提取具有特定焦距的图像

我有一些 cr2 文件。

我想做一个C++程序,或者写一个脚本,把不同焦距的cr2文件分开,放在不同的目录下。

我怎样才能做到这一点 ?

我可以访问佳能 EDSDK 和 LibRaw,但我不确定在哪里可以找到焦距信息。

我还有一个可以读取元数据的小实用程序“ExifTool”——但我不知道如何让它做我想做的事情——当通过网络读取 5000 个文件时,gui 版本似乎崩溃了......

请问有人可以给我一个建议吗?

0 投票
1 回答
769 浏览

c# - EDSDK 2.13。在电脑上接收到新照片时获取拍摄照片的相机的参考

对于我的问题,我在互联网上找不到任何解决方案。一定是因为这是一个非常具体的问题。我有多个相机连接到我的笔记本电脑,我可以同时拍摄并拍摄所有照片并将它们保存到我电脑上的一个目录中。这部分工作得很好。但是现在,我需要使用拍摄的相机的序列号来重命名我的照片。问题是我在下载图片时不知道如何检索相机上的任何信息。EdsObjectEventHandler 没有给我相机参考。

如果你们中的一个人找到了一种方法来做到这一点,我会很高兴知道。我会继续寻找。

谢谢

0 投票
1 回答
1298 浏览

c# - 如何从计算机唤醒我的佳能 EOS 1100D?

我有一台佳能 EOS 1100D相机,并通过我的 C# 程序控制它,该程序使用它的网络共享功能与佳能 EOS 实用程序 dll
我必须整天每 30 分钟拍摄一张照片,但如果我想在两次拍摄之间让相机进入待机模式,相机将与我的电脑断开连接,我必须通过按键打开它它。

有什么方法可以以编程方式重新连接我的相机?

‎</p>

注意:我害怕让相机一直开着。</p>

0 投票
1 回答
1209 浏览

c# - EDSDK 事件检测拍摄的图片

我有一个Canon EOS 1100D (Rebel T3)并编写了一个 C# 程序来使用. 我正在将拍摄的照片保存在计算机上。EDSDK dlls

我想通过“无线快门释放遥控器”远程拍照,然后立即处理这些照片。但有个问题:

是否有任何事件EDSDK dlls可以检测到新拍摄的照片?任何帮助将不胜感激。

0 投票
1 回答
2015 浏览

c# - 如何在 C# 中使用 Canon EDSDK 下载和录制视频?

我正在尝试创建一个从佳能相机中抓取照片和视频的应用程序。我找到了一种拍摄照片并将其下载到 PC 上的方法,但我没有找到下载视频的可能性。

有没有办法在 C# 中使用 Canon EDSDK 录制和下载视频?

0 投票
1 回答
1603 浏览

delphi - 为什么我从佳能 500D cam 获取实时取景时 FPS 较低?

任务:组织佳能 500D 相机的实时取景流...只需流而不录制。

环境:Windows 7,佳能500D通过USB2.0

一切正常,但我的 FPS 非常低,画面闪烁。

我有一个计时器。我绑定到 OnTimer 下一个函数:

然后我从相机下载图像以流式加载 jpg: TJPEGImage 从流中:

然后我将 jpg 渲染到 TImage 上:

结果,我在 TImage 上得到了闪烁的图像。我尝试将任何值设置为计时器的时间间隔,但没有取得重大成功。

我应该怎么做才能加快流式传输速度?

谢谢。

更新:我怀疑重点是我在单线程应用程序中执行所有步骤......你怎么看?我应该执行单独的线程以从相机获取实时取景图像吗?