问题标签 [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 回答
149 浏览

windows - 在“LockOSThread”GoRoutine 中调用函数

我正在编写一个包来使用来自 Go 的 EDSDK DLL 来控制佳能 DSLR。

这是我的合作伙伴要求在我们的婚礼上使用的照相亭的个人项目,我很乐意在完成后将其发布在 GitHub 上:)。

查看在其他地方使用 SDK 的示例,它不是线程安全的并且使用线程本地资源,因此我需要确保在使用期间从单个线程调用它。虽然并不理想,但看起来 Go 提供了一个“runtime.LockOSThread”函数来执行此操作,尽管它确实被核心 DLL 互操作代码本身调用,所以我必须等待并找出是否会干扰。

我希望应用程序的其余部分能够使用更高级别的接口调用 SDK 而不必担心线程,所以我需要一种方法将函数调用请求传递给锁定的线程/Goroutine 以在那里执行,然后将结果传回到该 Goroutine 之外的调用函数。

到目前为止,我已经提出了这个使用非常广泛的函数定义的工作示例,它使用 []interface{} 数组并通过通道来回传递。这将需要在每次调用时对输入/输出数据进行大量修改,以便从 interface{} 数组中返回类型断言,即使我们提前知道每个函数应该期待什么,但看起来它会工作。

在我投入大量时间以可能是最糟糕的方式这样做之前 - 有人有更好的选择吗?

0 投票
1 回答
4112 浏览

opencv - 如何通过 USB 使用 Python 从多个 DSLR 相机捕获图像?

我需要通过 USB 使用 Python 从几个(10-20)数码单反相机(佳能)同步和捕获图像,但我不知道如何。

我用SparkoCam这个 python 代码得到了它,但它只适用于一台相机

有谁知道如何从 DSLR 捕获图像?opencv、sdk?

0 投票
0 回答
690 浏览

edsdk - EDSDK 不支持 EOS 1300D

我正在将 EDSDK 用于应用程序,它在 EOS1200D 上运行良好,但在使用 EOS 1300D 调用 OpenSession() 时出现不支持的错误

我低于错误

0 投票
0 回答
401 浏览

c# - 使用 PTP/IP 将图像从相机传输到 PC

我正在尝试使用 C# 通过 wifi 将图像从 Canon EOS M6 复制到我的 PC,

我在此使用 PTP/IP,到目前为止,我能够连接到相机,查看 SD 卡并获取图像名称,但是当我尝试下载它们时,我得到了损坏的文件。

我认为它可能需要解码,因此我尝试使用 Base64 进行解码,但无法使其正常工作。

这里nsNetworkStream ns

请在这件事上给予我帮助,

谢谢你。

0 投票
1 回答
230 浏览

c++ - Canon SDK (EDSDK) 为视频流捕获指定大小的区域

我对 EDSDK 很陌生,所以很抱歉在某些地方可能会出现奇怪的问题。

是否可以使用 SDK 访问视频流并对其执行一些操作?我需要它来为流中的每个帧捕获指定大小(例如 3840x10 像素)的非常薄的区域 (ROI)。不要将此理解为帧的压缩,不需要遵循纵横比。这些理论上的变化应该会增加 fps,因为该区域会非常薄(应该吗?)。

我从官方文档中找到了下面的代码片段,尽管这似乎只导致发送启动和停止视频录制的信号,而不访问流。

我会非常感谢任何建议和帮助。请随时询问任何其他信息!

0 投票
1 回答
500 浏览

c# - EDSDK 远程按下快门按钮

我正在尝试使用 C# 中的佳能 EDSDK 3.6.1 远程控制我的佳能 EOS 1000D。

我打电话

但是,EdsSendCommand总是返回0x00000060意味着“无效参数”。

任何想法,这里出了什么问题?3 是我在本教程中找到的参数。我也尝试过CameraCommand_ShutterButton_Completely_NonAF = 0x00010003同样的结果。

或者有其他方法可以远程快门这台相机吗?

0 投票
2 回答
159 浏览

canon-sdk - 使用 MemoryStream 时 EdsCreateImageRef 失败

我想从佳能相机(EOS 550D 和 EOS 1300D)捕捉 RAW 图像并将它们转换为 RGB,而不将它们保存在磁盘上。我假设这应该是可能的,因为 EdsCreateImageRef 接受 StreamRef,它可以是 FileStream 或 MemoryStream。但是,每当我使用 MemoryStream 而不是 FileStream 时,EdsGetImageRef 将返回 EDS_ERR_FILE_FORMAT_UNRECOGNIZED。我尝试了几种变体:

  • 下载到 MemoryStream 并直接在此调用 EdsGetImageRef
  • 与上面相同,在两者之间寻找流的开头
  • 下载到 MemoryStream 中,将数据提取到我自己的数据缓冲区中并用这些数据填充新的 MemoryStream
  • 手动从磁盘加载数据(从已知有效的 CR2 文件)并用它填充 MemoryStream

唯一可行的是将数据转储到磁盘,然后使用 EdsCreateFileStream 打开此文件并将其传递给 EdsGetImageRef。有没有人能够为 MemoryStream 创建 ImageRef,如果是这样,您能否指出需要做什么才能成功?

0 投票
1 回答
53 浏览

edsdk - 佳能 EDSDK - 音频电平

有没有办法通过佳能 EDSDK 检索实时音频电平?

我知道尼康 SDK 它是作为每个实时取景帧的一部分发送的,但找不到佳能的任何参考资料。

希望将其与 EOS 750D 一起使用。

谢谢!

0 投票
2 回答
1371 浏览

c# - EDSDK 摄像头似乎“已锁定”,并显示“正在记录...剩余图像”消息

我正在使用 EDSDK 3.6.1 和 C# 远程控制佳能 EOS 1000D。

有时(成功)拍照并下载图像(RAW+L)后,相机似乎“挂起”。实时取景不再起作用和/或相机似乎通过 EDSDK 没有响应。当我尝试关闭相机时,它的显示屏显示:

正在录制...
剩余图像:2

这通常意味着:相机正忙于向卡写入数据。但是,在这些情况下,相机似乎会无休止地写入数据。

我是否需要告诉相机我已完成下载图像或类似内容?

但是,在不带卡的情况下远程控制相机时似乎可以使用。

更新 1:

刚遇到这个问题,相机中没有任何卡。

更新 2:

EdsDownloadComplete每次下载后都会调用该命令。但是,我仍然随机收到此错误:有时在第二张或第三张照片/下载之后,有时更晚。很奇怪... :-(

EdsRelease始终返回 0,这意味着此文件/对象上没有更多的引用计数器。

有没有办法在拍照/开始实时取景之前检查下载状态并取消所有剩余的?

0 投票
2 回答
573 浏览

c# - 如何在佳能 sdk c# 中管理移动缩放视图

我可以使用在 codeproject Canon EDSDK Library中找到的这个库来使用 canon sdk

我已经完成了我的所有要求,除了一个。就是向上/向下/向左/向右移动缩放的实时视图。我可以缩放,但我无法移动它以查看调整手动缩放的正确位置。

我已经搜索过,我来到了 zoomRect、zoomPosition、zoomCoordinates ......但我不知道它们实际上是什么以及如何使用它们。

任何建议,无论是否使用这个库,代码块都会有很大帮助