使用 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 设置相机内自定义白平衡的官方方式。