cr2 извлекает изображения с определенным фокусным расстоянием

0

У меня есть некоторые файлы cr2.

Я хотел бы сделать программу C++ или написать сценарий, который отделяет разные файлы cr2 с разными фокусными расстояниями и помещает их в отдельные каталоги.

Как я могу это сделать?

У меня есть доступ к Canon EDSDK и LibRaw, но я не уверен, где я могу найти информацию о фокусном расстоянии.

У меня также есть небольшая утилита "ExifTool", которая может читать метаданные, но я не знаю, как заставить ее делать что-то, что я хочу, - и версия gui, кажется, падает при чтении 5000 файлов по сети...

Пожалуйста, может кто-нибудь дать мне предложение?

Теги:
exif
canon-sdk

1 ответ

1
Лучший ответ

Спецификацию EXIF можно найти здесь:

http://www.exif.org/specifications.html

Вам нужно будет прочитать данные EXIF и найти запись, содержащую "тег" 37386 или 0x920A. За этим следует номер "RATIONAL", который представляет собой по существу два целых числа без знака, составляющих фракцию, например 400/20 = 20 мм, как и 80/5 или 20/1. 14,5-мм объектив должен быть (по крайней мере) сохранен как 29/2, но может быть сохранен как 145/10 или 1450/100 - или большое количество других вариантов.

Конечно, если вы используете, например, ExifTool, вы можете легко сделать это со сценарием или использовать его Perl-привязку для написания скрипта на Perl.

Существует также интерфейс C++ для использования с exiftool: http://owl.phy.queensu.ca/~phil/cpp_exiftool/

Используя TagInfo который вы вернетесь из ImageInfo(), должно быть возможно найти FocalLength и соответствующим образом переместить файлы.

Я не собираюсь писать код для вас, но приведенная выше информация должна быть в состоянии дать вам представление.

  • 0
    кажется, что страница exif.org больше не существует
  • 0
    Я прошу прощения, но кажется, что кто-то забыл заплатить за продление. Не совсем моя вина ... Это также описывает формат: media.mit.edu/pia/Research/deepview/exif.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню