Установка пользовательских значений баланса белого LiveView
Используя EDSDK, я хочу программно установить значения баланса белого (RGGB) потока LiveView, а также баланс белого в изображениях JPG (и RAW), поступающих непосредственно с камеры. Процесс ручной балансировки белого в реальном времени и изображения вне камеры мне не совсем понятен и не совсем понятен в руководстве по EDSDK.
Методом проб и ошибок я провел калибровку LiveView, введя команду kEdsCameraCommand_DoClickWBEvf с координатами на серой карте. Похоже, это влияет на liveview:
- Liveview переключается на "ClickWB" (-1) настройки баланса белого
- Настройки камеры остаются неизменными: это не меняет значения камеры при съемке.
- Обратите внимание, что значок "Ручной WB" на камере исчезает при установке значения "ClickWB", что-то кажется неправильным.
По-видимому, утилита Canon EOS делает вещи немного иначе. Используя некоторую трассировку и опрос PTP-событий, я вижу, что:
- Нажатие на Whitebalance отправляет аналогичную команду ClickWB на камеру.
- При нажатии "Применить к снятым изображениям" отправляет команду на камеру
- Баланс белого камеры остается на значении 6 ("Ручной","Белая точка" или "Белая бумага" в зависимости от контекста).
- Liveview также затрагивается, так как он переключается на 6.
- Трассировка показывает свидетельство команды "CPtpCamera::TranslateMWb", как будто есть команда для установки баланса пользователя.
- "Сырые" коэффициенты баланса белого могут быть извлечены, поскольку EOS отображает предупреждение о том, что коэффициенты не в порядке.
Для изображений RAW я работал над балансировкой белого, сохраняя коэффициенты баланса белого из RAW серой карты и повторно применяя эти коэффициенты при преобразовании нового изображения (без серой карты) в формат TIFF. Это не влияет на JPG на камере, баланс белого при съемке и не может быть восстановлено после сброса.
Я застреваю при отключении / повторном подключении камеры и (программно) применяю ранее откалиброванные или сохраненные значения баланса белого. Возможно ли это, и если да, то как мне скопировать исходные значения баланса белого. Кто-нибудь здесь, кто имеет опыт ручного WBing с EDSDK, хочет поделиться типом / порядком обмена?
Замечания:
- Canon не предоставляет никакой официальной технической поддержки для EDSDK
- более ранние SDK содержали команды (например, в 2.5 kEdsPropID_UserWhiteBalanceData). Там должна быть замена для этого?
--- обновление 17 декабря 2014 ---
В настоящее время я (косвенно) нахожусь в "официальном" контакте с разработчиками Canon EDSDK, и в настоящее время нет никакого официального способа настройки пользовательского баланса белого в камере через EDSDK.