问题标签 [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.
windows - 在“LockOSThread”GoRoutine 中调用函数
我正在编写一个包来使用来自 Go 的 EDSDK DLL 来控制佳能 DSLR。
这是我的合作伙伴要求在我们的婚礼上使用的照相亭的个人项目,我很乐意在完成后将其发布在 GitHub 上:)。
查看在其他地方使用 SDK 的示例,它不是线程安全的并且使用线程本地资源,因此我需要确保在使用期间从单个线程调用它。虽然并不理想,但看起来 Go 提供了一个“runtime.LockOSThread”函数来执行此操作,尽管它确实被核心 DLL 互操作代码本身调用,所以我必须等待并找出是否会干扰。
我希望应用程序的其余部分能够使用更高级别的接口调用 SDK 而不必担心线程,所以我需要一种方法将函数调用请求传递给锁定的线程/Goroutine 以在那里执行,然后将结果传回到该 Goroutine 之外的调用函数。
到目前为止,我已经提出了这个使用非常广泛的函数定义的工作示例,它使用 []interface{} 数组并通过通道来回传递。这将需要在每次调用时对输入/输出数据进行大量修改,以便从 interface{} 数组中返回类型断言,即使我们提前知道每个函数应该期待什么,但看起来它会工作。
在我投入大量时间以可能是最糟糕的方式这样做之前 - 有人有更好的选择吗?
opencv - 如何通过 USB 使用 Python 从多个 DSLR 相机捕获图像?
我需要通过 USB 使用 Python 从几个(10-20)数码单反相机(佳能)同步和捕获图像,但我不知道如何。
我用SparkoCam
这个 python 代码得到了它,但它只适用于一台相机
有谁知道如何从 DSLR 捕获图像?opencv、sdk?
edsdk - EDSDK 不支持 EOS 1300D
我正在将 EDSDK 用于应用程序,它在 EOS1200D 上运行良好,但在使用 EOS 1300D 调用 OpenSession() 时出现不支持的错误
我低于错误
c# - 使用 PTP/IP 将图像从相机传输到 PC
我正在尝试使用 C# 通过 wifi 将图像从 Canon EOS M6 复制到我的 PC,
我在此使用 PTP/IP,到目前为止,我能够连接到相机,查看 SD 卡并获取图像名称,但是当我尝试下载它们时,我得到了损坏的文件。
我认为它可能需要解码,因此我尝试使用 Base64 进行解码,但无法使其正常工作。
这里ns是NetworkStream ns
请在这件事上给予我帮助,
谢谢你。
c++ - Canon SDK (EDSDK) 为视频流捕获指定大小的区域
我对 EDSDK 很陌生,所以很抱歉在某些地方可能会出现奇怪的问题。
是否可以使用 SDK 访问视频流并对其执行一些操作?我需要它来为流中的每个帧捕获指定大小(例如 3840x10 像素)的非常薄的区域 (ROI)。不要将此理解为帧的压缩,不需要遵循纵横比。这些理论上的变化应该会增加 fps,因为该区域会非常薄(应该吗?)。
我从官方文档中找到了下面的代码片段,尽管这似乎只导致发送启动和停止视频录制的信号,而不访问流。
我会非常感谢任何建议和帮助。请随时询问任何其他信息!
c# - EDSDK 远程按下快门按钮
我正在尝试使用 C# 中的佳能 EDSDK 3.6.1 远程控制我的佳能 EOS 1000D。
我打电话
但是,EdsSendCommand
总是返回0x00000060
意味着“无效参数”。
任何想法,这里出了什么问题?3 是我在本教程中找到的参数。我也尝试过CameraCommand_ShutterButton_Completely_NonAF = 0x00010003
同样的结果。
或者有其他方法可以远程快门这台相机吗?
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,如果是这样,您能否指出需要做什么才能成功?
edsdk - 佳能 EDSDK - 音频电平
有没有办法通过佳能 EDSDK 检索实时音频电平?
我知道尼康 SDK 它是作为每个实时取景帧的一部分发送的,但找不到佳能的任何参考资料。
希望将其与 EOS 750D 一起使用。
谢谢!
c# - EDSDK 摄像头似乎“已锁定”,并显示“正在记录...剩余图像”消息
我正在使用 EDSDK 3.6.1 和 C# 远程控制佳能 EOS 1000D。
有时(成功)拍照并下载图像(RAW+L)后,相机似乎“挂起”。实时取景不再起作用和/或相机似乎通过 EDSDK 没有响应。当我尝试关闭相机时,它的显示屏显示:
正在录制...
剩余图像:2
这通常意味着:相机正忙于向卡写入数据。但是,在这些情况下,相机似乎会无休止地写入数据。
我是否需要告诉相机我已完成下载图像或类似内容?
但是,在不带卡的情况下远程控制相机时似乎可以使用。
更新 1:
刚遇到这个问题,相机中没有任何卡。
更新 2:
EdsDownloadComplete
每次下载后都会调用该命令。但是,我仍然随机收到此错误:有时在第二张或第三张照片/下载之后,有时更晚。很奇怪... :-(
EdsRelease
始终返回 0,这意味着此文件/对象上没有更多的引用计数器。
有没有办法在拍照/开始实时取景之前检查下载状态并取消所有剩余的?
c# - 如何在佳能 sdk c# 中管理移动缩放视图
我可以使用在 codeproject Canon EDSDK Library中找到的这个库来使用 canon sdk
我已经完成了我的所有要求,除了一个。就是向上/向下/向左/向右移动缩放的实时视图。我可以缩放,但我无法移动它以查看调整手动缩放的正确位置。
我已经搜索过,我来到了 zoomRect、zoomPosition、zoomCoordinates ......但我不知道它们实际上是什么以及如何使用它们。
任何建议,无论是否使用这个库,代码块都会有很大帮助