Почему UFRaw не находит автоматически профиль одного из моих объективов, хотя он есть в базе данных?

Когда я открываю необработанное изображение, сделанное с помощью Canon EOS 600D, UFRaw для некоторых объективов не находит профиль объектива автоматически.

Это пример, где он находит профиль:

From the EXIF information:
Lens Model: EF-S17-85mm f/4-5.6 IS USM
Lens Type: Canon EF-S 17-85mm f4-5.6 IS USM

From the lensfun database file slr-canon.xml:
Model: Canon EF-S 17-85mm f/4-5.6 IS USM

Профиль LensFun для этого объектива имеет кроп-фактор 1,611.

Этот НЕ находится автоматически:

From the EXIF information:
Lens Model: EF-S18-135mm f/3.5-5.6 IS USM
Lens Type: (36912)

From the lensfun database file slr-canon.xml:
Model: Canon EF-S 18-135mm f/3.5-5.6 IS USM

Профиль LensFun для этого объектива был создан с помощью Canon EOS 7D Mark II с кроп-фактором 1,605.

Кроп-фактор для Canon EOS 600D в базе данных Lensfun равен 1,613.

Почему Canon EF-S 18-135mm f/3.5-5.6 IS USM не находится автоматически?

Объективы не имеют кроп-фактора. Камеры делают. Точнее, датчики в камерах. Вы спрашиваете, почему второй профиль показывает кроп-фактор 1,605 вместо 1,613?
Нет, я просто упомянул об этом, если это имело значение. Я спрашиваю, почему один объектив автоматически выбирается, а другой нет. Оба есть в базе данных Lensfun.
ufraw не обновлялся уже несколько лет, и на тот момент поддержка Lensfun была помечена как экспериментальная. Просто из любопытства, работает ли более современное программное обеспечение? И какая у вас версия базы данных Lensfun?
UFRaw древний... См. RawTherapee, Darktable, Photozone, все гораздо лучше. См. pxls.us , где они обсуждаются (и где вы можете связаться с авторами).
Darktable использует LensFun, как и UFRaw. Показывает название камеры и пишет "неизвестный объектив, выберите вручную". Для объектива показывает тип объектива из информации EXIF, а не название объектива. Почему-то (36912)в EXIF ​​указан тип объектива.

Ответы (1)

Тип объектива в Exif может не сопоставляться используемому программному обеспечению с именем объектива. В случае darktable это зависит от exiv2, который может не иметь этого отображения объектива, если это более старая версия exiv2. Чтобы усугубить проблему, exiv2 эта функция может не предоставляться в будущем , поэтому даже в последних версиях эта проблема может проявляться для последних объективов. Предлагаемое решение состоит в том, чтобы пользователи могли предоставлять свои собственные сопоставления для используемых ими объективов.

В данном случае это не фактор, а общая информация: Lensfun обычно не использует профиль, созданный с помощью камеры с меньшим датчиком, для изображения, созданного с помощью камеры с большим датчиком. Это связано с тем, что хотя корректировку в противоположном направлении можно точно рассчитать, в этом случае потребуются предположения о том, что объектив делает в областях вблизи краев, которые не были частью исходного профиля.

Но в этом случае 600D обрезает немного более плотно, с коэффициентом кадрирования 1,613, чем любая камера с коэффициентом кадрирования 1,611 или 7DII с коэффициентом кадрирования 1,605. Таким образом, оба профиля, тот, который был распознан автоматически, и тот, который не был распознан автоматически, были сгенерированы камерами, которые не обрезают так сильно, как 600D.
@MichaelClark Спасибо, да, я был довольно отвлечен, когда пытался ответить, ломая голову, жонглируя разными культурами; Я оставлю эту информацию, потому что она может быть полезной в целом, но отредактирую применимость к этому случаю.
Я установил Darktable, который также показывал тип объектива как (36912), как exiftool. Теперь я также установил exiv2 (он не был установлен, так что вы уверены, что Darktable зависит от него?). Это показывает следующее: $ exiv2 -p a _MG_4680.CR2 | grep -i lens Exif.CanonCs.LensType Short 1 Canon EF 70-300mm f/4-5.6 IS II USM(обрезано, потому что комментарий слишком длинный, и форматирование потеряно) Это показывает правильный тип объектива. LensIDNumer, упомянутый в предложенном вами решении, отсутствует в выходных данных (это может быть специфично для Nikon?).
Извините, неверное тестовое изображение (другой объектив). Результаты должны быть такими: ``$ exiv2 -pa _MG_4678.CR2 | grep -i объектив Exif.CanonCs.LensType Short 1 Canon EF-S 18-135mm f/3.5-5.6 IS USM`
В зависимости от того, как вы получили darktable, это может быть статическая сборка по сравнению со старым exiv2; вам придется построить его против более нового. Для сопоставления объективов Canon, похоже, вы использовали бы (непереведенное) значение LensType, «36912».