Как программно определить as-shot ColorTemp из файла NEF (RAW)? - Фотопедия
2 голосов
/ 27 декабря 2014

При съемке изображений в формате RAW в режиме AUTO WhiteBalance камера каким-либо образом определяет, что она считает хорошим ББ для изображения. В Photoshop (CS6) я не могу найти способ извлечь ColorTemp; EXIF: ColorTempera показывает «0», а WhiteBalance = «AUTO».

Когда вы переносите NEF (для Nikon) в Adobe Camera Raw (ACR), он показывает ColorTemp (например, «5550») ​​и «TINT» (например, -4), оцениваемые камерой при съемке изображения.

ACR почти наверняка вызывает в воображении константы ColorTemp и Tint из констант EXIF: WB_GRBGLevels (например, «256 496 371 256»), которые характеризуют цвета изображения. Единственный способ добраться до них - это: 1. щелкните правой кнопкой мыши на NEF 2. Выберите Открыть в Photoshop (который запускает Adobe Camera Raw) 3. В ACR, нажмите на иконку справа в основном меню 4. Нажмите Экспорт настроек в XMP

.

Результаты экспортированного XMP: D: \ pic \ new \ cd-2014.1225-nef> egrep "Temp |: Tint" _BPB0920.xmp CRS: температура = "4950" CRS: Оттенок = "+ 4"

Данные EXIF ​​не содержат четырехзначных чисел, которые могут быть ColorTemp:

exiftool.exe - * _BPB0920.NEF | гр "\ b \ d {4} \ b" | egrep -vi "дата | версия | файл | время | копия | бинарный" Ширина изображения: 7424 Высота изображения: 4924 Настройка ISO: 1000 Центр необработанных изображений: 3712 2462

ColorTemp является одним из наиболее важных фрагментов данных для любого изображения, и кажется, что он полностью скрыт от пользователя без 4-этапного руководства Kabuki Dance.

Есть какой-то простой метод, который я пропускаю? Должен быть какой-то способ вычисления ColorTemp / WhiteBalance в Кельвинах на основе тегов EXIF ​​ WB .

Кто-нибудь из фотоматематиков здесь уже понял это?

BPB

TAGS: WhiteBalance Цветовая температура Оттенок Photoshop ACR EXIF ​​WB_GRBGУровни RGB translate

=============================================== ===========
Результаты экстракции Exiftool только Nikon Maker Notes, предложенные Джоном Каваном
sub nef_makernote() { $file = $ARGV[0]; $et = new Image::ExifTool; %ET_OPT = (Group0 => ['MakerNotes']); %ii = %{$et->ImageInfo($file, \%ET_OPT)}; printf("File $file, size %4.3f MB has %d MakerNote keys\n", (-s $file)/1E6, scalar keys %ii); $ii = -1; while(($key, $val) = each %ii) { $ii++; print("$ii) $key -> $val\n"); } }

Есть довольно много Maker Notes; Вот краткий обзор ограниченного объема внимания:
bb.pl il-2014.0529-226127.nef | grep W 39) WB_GRBGLevels -> 256 485 380 256 42) WhiteBalance -> Auto1 56) WB_RBLevels -> 1.89453125 1.484375 1 1 90) WhiteBalanceFineTune -> 0 0 103) Quality -> RAW

И кровавые детали:
Running c:/bin/bb.pl il-2014.0529-226127.nef Sun Dec 28 11:41:26 2014 File il-2014.0529-226127.nef, size 38.579 MB has 137 MakerNote keys 0) MinFocalLength -> 28.3 mm 1) ExposureBracketValue -> 0 2) NEFLinearizationTable -> SCALAR(0x2683e60) 3) VibrationReduction -> On 4) PhaseDetectAF -> On (51-point) 5) ISOExpansion2 -> Off 6) FlashExposureBracketValue -> 0.0 7) PictureControlVersion -> 0100 8) ToningSaturation -> n/a 9) FlashGroupAControlMode -> Off 10) FlashGroupACompensation -> 0 11) MultiExposureShots -> 0 12) FlashGroupCControlMode -> Off 13) AFFineTuneAdj -> 0 14) AFFineTune -> Off 15) PowerUpTime -> 2014:05:29 08:34:27 16) FirmwareVersion -> 1.02a 17) FlashExposureComp3 -> 0 18) ShutterCount -> 226127 19) MaxFocalLength -> 302.0 mm 20) ContrastDetectAF -> Off 21) CommanderInternalManualOutput -> Full 22) Timezone -> -06:00 23) WB_RBLevels -> 1.89453125 1.484375 1 1 24) Contrast (1) -> Normal 25) YResolution (4) -> 300 26) Sharpness (1) -> 5 27) AutoBracketOrder -> 0,-,+ 28) ExternalFlashCompensation -> 0 29) Compression (4) -> JPEG (old-style) 30) SerialNumber -> 3000001 ;) 31) HighISONoiseReduction -> Normal 32) ExternalFlashFlags -> (none) 33) NEFCompression -> Lossy (type 2) 34) FlashGroupCCompensation -> 0 35) ResolutionUnit (4) -> inches 36) PictureControlName -> Standard 37) LensDataVersion -> 0204 38) ExposureTuning -> 0 39) RepeatingFlashOutputExternal -> 1 40) FlashGroupBCompensation -> 0 41) ContrastDetectAFInFocus -> No 42) CommanderInternalFlash -> TTL 43) Lens -> 28-300mm f/3.5-5.60000000000001 44) FlashCommanderMode -> Off 45) FlashInfoVersion -> 0105 46) ISOSetting -> 125 47) FocalLength (1) -> 28.3 mm 48) ISOExpansion -> Off 49) LensIDNumber -> 165 50) CommanderGroupAManualOutput -> Full 51) ProgramShift -> 0 52) PreviewImageLength -> 104006 53) DaylightSavings -> Yes 54) DirectoryNumber -> 237 55) ColorSpace -> Adobe RGB 56) FlashSetting -> 57) CommanderGroupB_TTL-AAComp -> 0 58) ToningEffect -> n/a 59) ShootingMode -> Continuous, Exposure Bracketing 60) LensType -> G VR 61) AutoBracketingMode -> Flash/Speed 62) NoiseReduction -> Off 63) SequenceNumber -> 0 64) ExternalFlashExposureComp -> 0 65) FlashColorFilter -> None 66) MultiExposureMode -> Off 67) WhiteBalanceFineTune -> 0 0 68) FlashMode -> Did Not Fire 69) ModelingFlash -> On 70) AFAperture -> 3.6 71) PreviewImageStart -> 923124 72) MaxApertureAtMinFocal -> 3.6 73) YCbCrPositioning (2) -> Co-sited 74) AFFineTuneIndex -> n/a 75) FlashExposureComp4 -> 0 76) VRInfoVersion -> 0100 77) CropHiSpeed -> Off (7424x4924 cropped to 7424x4924 at pixel 0,0) 78) ISO (2) -> 126 79) MultiExposureAutoGain -> Off 80) ActiveD-Lighting -> Auto 81) FlashCompensation -> 0 82) ShotInfoVersion -> 0222 83) CommanderChannel -> 1 84) VRMode -> Normal 85) VignetteControl -> Normal 86) HueAdjustment -> None 87) ExternalFlashFirmware -> n/a 88) WhiteBalance -> Auto1 89) FocusMode -> AF-C 90) WB_GRBGLevels -> 256 485 380 256 91) MCUVersion -> 167 92) ContrastCurve -> SCALAR(0x696bf18) 93) FilterEffect -> n/a 94) FlashShutterSpeed -> 1/8 s 95) AFPointsUsed -> A6 96) MakerNoteVersion -> 2.10 97) CommanderGroupBMode -> TTL 98) FileInfoVersion -> 0100 99) AFInfo2Version -> 0100 100) FlashControlBuilt-in -> Commander Mode 101) DateDisplayFormat -> M/D/Y 102) FlashGroupBControlMode -> Off 103) PrimaryAFPoint -> A6 104) LensFStops -> 5.33 105) FileNumber -> 6458 106) FlashExposureComp2 -> +2/3 107) ISO2 -> 126 108) ExitPupilPosition -> 85.3 mm 109) Saturation (1) -> Normal 110) PictureControlAdjust -> Full Control 111) CommanderGroupBManualOutput -> Full 112) AutoBracketingSet -> AE & Flash 113) RawImageCenter -> 3712 2462 114) RetouchHistory -> None 115) CommanderGroupA_TTL-AAComp -> +0.3 116) CommanderInternalTTLComp -> -2.7 117) FocusPosition -> 0x66 118) PictureControlQuickAdjust -> Normal 119) EffectiveMaxAperture -> 3.6 120) FlashControlMode -> Off 121) PictureControlBase -> Standard 122) MultiExposureVersion -> 0100 123) XResolution (4) -> 300 124) ExposureDifference -> 0 125) AFAreaMode -> Dynamic Area (9 points) 126) CommanderGroupAMode -> TTL 127) Brightness -> Normal 128) Quality -> RAW 129) FlashExposureComp -> +1 130) FlashSource -> None 131) MaxApertureAtMaxFocal -> 5.7 132) FlashGNDistance -> 0 133) FlashType -> 134) AutoDistortionControl -> Off 135) FlashSyncSpeed -> 1/250 s 136) FocusDistance -> 6.68 m Elapsed time = 0.087 seconds.

Поиск 4-значных чисел, скрывающихся за странными метками:
bb.pl il-2014.0529-226127.nef | gr "\b\d{4}\b" | egrep -iv "version|time|2014" 14) FileNumber -> 6458 21) RawImageCenter -> 3712 2462

Я не вижу никаких признаков числового значения ColorTemp / WhiteBalance или Кельвина.
Где Кельвин ?! (

=============================================== ================= Вот еще одна попытка извлечь полезную цветовую температуру / оттенок из файла NEF, снятого с помощью WhiteBalance = AUTO, предложенного MirekE, с использованием значения EXIF ​​ASShotNeutral.

Nikon не записывает эту информацию, но она присутствует в файлах DNG. Скачал последний конвертер Adobe DuNG (делает то, что следует из названия :). Преобразованный D800E .NEF -> .DNG
Результаты:

Egad !!! Еще один непонятный, несовместимый суррогат Баланса Белого, чтобы бросить на существующую Вавилонскую гадюку! Теперь существует тэг ASShotNeutral EXIF ​​в новом и туманном патентованном формате:
> exiftool.exe -ASShot * - WB - whitebala -S -ver pf-2012.0620-3947 .dng
9.77
AsShotNeutral: 0.504931 1 0.699454 <Новая и улучшенная ОБФУСКАЦИЯ? </strong>
WB_RBLevels: 1.98046875 1.4296875 1 1
WB_GRBGУровни: 256 507 366 256
WhiteBalance: Auto1
WhiteBalanceFineTune: 0 0

Adobe Camera Raw (ACR) каким-то образом скрывает часть этой «информации» и отображает «As Shot» = 4950 и «Tint» = + 15. Как остается загадкой!

Вот карта результатов:
Nikon: WB_RBLevels = 1.98046875 1.4296875 1 1
DCRaw: множители = 1.880420 1.000000 1.532661 1.000829
adobe_DuNG: ASShotNeutral = 0,504931 1 0,699454
ACR: Temp = 4950 & Tint = + 15

Это все разные формулировки "WhiteBalance" для одного и того же NEF; Розеттский камень Белого Баланса. Как один программно переводит любой из них другому?

И мы не приблизились к простой формуле, переводящей «множители» NEF EXIF ​​WB * в полезный темп / оттенок, который можно подключить к XMP-файлу для использования ACR для преобразования необработанного текста. Мое королевство для расшифровочного кольца или вавилонской рыбы!

Ответы [ 2 ]

2 голосов
/ 28 декабря 2014

Проблема с цветовой температурой, выраженной в Кельвинах, заключается в том, что они не относятся к одному смещению цвета - одна и та же температура может быть выражена различными значениями цвета. Так что для необработанных файлов более полезно сохраните эту информацию как последовательность из двух или трех значений цвета в отличие от K. Вы можете использовать

exiftool -AsShotNeutral <raw file name>

с некоторыми камерами, но не будет работать со всеми. Эти числа могут быть пересчитаны в K, поэтому необработанные редакторы могут показать значение K.

Тем не менее, я подозреваю, что в случае AWB значение K может вообще не записываться в файл.

Обновление на основе редактирования исходного вопроса:

И мы не приблизились к простой формуле, переводящей «множители» NEF EXIF ​​WB * в полезный темп / оттенок, который можно подключить к XMP-файлу для использования ACR для преобразования исходного кода.

Я не знаю, как расшифровать данные NEF, но из вашего обновления похоже, что конвертер DNG может, по крайней мере, преобразовать его в AsShotNeutral. А что касается AsShotNeutral, то можно преобразовать в температуру и оттенок, но для этого вам понадобятся дополнительные данные профиля, чтобы сделать это. Если я правильно помню, пример кода DNG SDK может иметь некоторый пример, как это сделать.

0 голосов
/ 05 января 2016

Поскольку вы используете Nikon, просто откройте фотографию в бесплатном программном обеспечении Nikon ViewNX 2, и в поле баланса белого есть ползунок «Точная настройка», а справа от этого ползунка находится белое поле со значением цветовой температуры.

Добро пожаловать на сайт Фотопедия, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...