Фотоклуб - фототехника Canon Nikon Sony

Вернуться   Фотоклуб - фототехника Canon Nikon Sony > Фототехнология > Обмен опытом
Перезагрузить страницу в помощь тем, кто задается вопросом "EF24 или EF28?" и т.п. или анализ предпочтений
Ответ
 
Опции темы Опции просмотра
  (#1) Старый
andyb andyb вне форума
заслуженный участник
Научный сотр.
 
Сообщений: 468
Регистрация: 27.10.2005
По умолчанию в помощь тем, кто задается вопросом "EF24 или EF28?" и т.п. или анализ предпочтений - 19.03.2007, 00:18

Неоднократно видел в форумах советы вроде: "посмотрите на свои снимки - какими фокусными пользуетесь чаще и сможете определиться с тем, что выбрать". Совет хороший, но не всегда легко реализуемый. Думаю, что многие скорее просто замечают, что на таком то объективе они чаще используют такое-то значение для этого и такое-то для того.

После того, как я наткнулся на один старый thread где кто-то скрипт написал для подобных вычислений, созрел на создание чего-то подобного. Думаю, что это не только мне будет интересно, поэтому делюсь наработками.

Итак, целью ставилось сбор статистики по всем снимкам из архива с последующим отображением в числовом виде и в виде графиков. Для простоты реализации и применения скрипты были написаны на perl с использованием доп. библиотеки (подробнее об этом ниже).

У меня за год пользования canon 350d накопилось несколько dvd со снимками, поэтому для каждого из них придется запустить скрипт. При этом статистика накапливается.
Результат выглядит следующим образом:

18.0mm 428 *************************************************
21.0mm 41 *****
22.0mm 67 ********
24.0mm 49 ******
25.0mm 71 ********
27.0mm 71 ********
28.0mm 88 **********
30.0mm 52 ******
31.0mm 62 *******
33.0mm 45 ******
34.0mm 65 ********
35.0mm 35 ****
37.0mm 40 *****
38.0mm 36 *****
39.0mm 30 ****
40.0mm 23 ***
41.0mm 41 *****
42.0mm 35 ****
43.0mm 25 ***
44.0mm 18 ***
45.0mm 29 ****
46.0mm 35 ****
47.0mm 35 ****
48.0mm 21 ***
49.0mm 40 *****
50.0mm 23 ***
51.0mm 7 *
52.0mm 9 **
53.0mm 17 **
54.0mm 36 *****
55.0mm 613 ************************************************** ********************

Слева столбец фокусных расстояний, правее - количество снимков, еще правее - визуальное представление количества снимков для визуального сравнения.
У меня сейчас в распоряжении только EF-S 18-55 3.5-5.6 II и это видно из отчета.

Что можно извлечь из отчета: в этом случае, подобно анализу гистограмы, заметно, что мне не хватает как минимум широкоугольника и портретника. Из средних фокусных, мог бы быть фикс EF 28 - заметен пик частот.
Ответить с цитированием
  (#2) Старый
andyb andyb вне форума
заслуженный участник
Научный сотр.
 
Сообщений: 468
Регистрация: 27.10.2005
По умолчанию Теперь о том как этим востользоваться - 19.03.2007, 00:21

Нужно установить perl интерпретатор (я использую версию ActivePerl 5.8.6.811
http://www.activestate.com/ActivePerl/), библиотеку Image-ExifTool-6.80
(http://www.sno.phy.queensu.ca/~phil/exiftool/) и использовать скрипт exif_stat.pl.

Исходный код скрипта:
----------------------- начало ---------------------------
#!/bin/perl -w
# use: exif_stat.pl [<folder>] [<file extention>]
use strict;
use File::Find;
use Image::ExifTool qw(:Public);

my $dir = shift;
$dir = '.' unless defined ($dir);
my $ext = shift;
$ext = 'cr2' unless defined ($ext);
$ext = '\.' . $ext . '$';

my %focal_set;
my $max_val = 0;
my $max_bar = 70;

if (open (IN, "exif_rep.txt"))
{
while (<IN>)
{
/^([0-9.mm]*)\s*(\d*)/;
next unless defined($1) and defined($2);
$focal_set{$1} = $2;
$max_val = $2 if $max_val < $2;
}
close (IN);
}

find ({wanted => \&process, no_chdir => 1}, $dir);

open (OUT, ">exif_rep.txt");
foreach (sort (keys %focal_set))
{
my $focal = $_;
my $value = $focal_set{$_};
my $bar = '*' x ($max_val > $max_bar ? ($value * ($max_bar - 1) / $max_val + 1) : $value);
write (OUT);

format OUT =
@>>>>> @##### @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<
$focal, $value, $bar
.

}
close (OUT);

sub process
{
return if -d $File::Find::name;
return unless $File::Find::name =~ /$ext/i;

print "$File::Find::name\n";

my $info = ImageInfo($File::Find::name);
my $focal = $$info{'FocalLength'};

if (defined ($focal))
{
$focal_set{$focal}++;
$max_val = $focal_set{$focal} if $max_val < $focal_set{$focal};
}
else
{
print "warn: focal length is undefined in $File::Find::name\n";
}
}
----------------------- конец ----------------------------

Скопируйте и вставте исходный код в файл exif_stat.pl.
Запустите скрипт, в качестве параметра укажите путь откуда рекурсивно делать поиск файлов с заголовками exif. По умолчанию анализируются файлы CR2. (Лично у меня есть в архиве jpeg-и друзей, а также переделаные позже снимки, т.е. дубли, поэтому анализ jpeg-ов я решил не делать.) Если необходимо анализировать др. файлы - укажите вторым параметром расширение.

Примеры коммандных строк запуска скрипта:
exif_stat.pl - ищет начиная с текущей папки файлы CR2
exif_stat.pl e:\ - ищет начиная с корня E файлы CR2
exif_stat.pl . jpg - ищет начиная с текущей папки файлы jpg

Во время работы на экран выводятся обрабатываемые файлы.
Результат записывается в файл exif_rep.txt.
В следующий запуск (для др. архива) скрипт подхватит статистику из
exif_rep.txt, дополнит ее новыми данными и перезапишет отчет.

Upd: Статья также доступна здесь: http://byandy.livejournal.com/6515.html. (Получилось избежать ненужного в данном случае форматирования и искажения кода и таблицы.)

Вроде бы все.
Ответить с цитированием
  (#3) Старый
andyb andyb вне форума
заслуженный участник
Научный сотр.
 
Сообщений: 468
Регистрация: 27.10.2005
По умолчанию 19.03.2007, 00:24

по непонятным мне причинам в строке

@>>>>> @##### @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< < <<<<<<<<<<<<<<<<<<<<

среди знаков меньше появляется пробел - его следует удалить.
Ответить с цитированием
  (#4) Старый
Chuha Chuha вне форума
участник
Практикант
 
Сообщений: 163
Регистрация: 04.06.2006
Адрес: Liverpool
По умолчанию 19.03.2007, 00:31

Огромное Вам спасибо за проделанную работу!!!


1ds Mk2, Canon 30d BG-E2N, EX580. EX 580II, Canon 24-70 F2.8L, 70-200 F2.8 IS USM L, 190 XPROB
Ответить с цитированием
  (#5) Старый
nWo_Kidman nWo_Kidman вне форума
эксперт
Научный сотр.
 
Сообщений: 553
Регистрация: 06.09.2005
Адрес: Ukraine, CV
По умолчанию 19.03.2007, 00:43

Для меня это очень тяжело да я и так могу сказать за год пользования наибольшое колчество снимков это на ФР 50 и 80 ну и есть пару на 28 а все остальное в прмежутках так иногда использовал так же как и 75-300.
Но за все спасибо если вдруг захочеться таки точненько проверить то обязательно попробую


Мастерство не пропьешь :beer:
Ответить с цитированием
  (#6) Старый
Дмитрий Наумов Дмитрий Наумов вне форума
заслуженный участник
Лаборант
 
Сообщений: 43
Регистрация: 09.04.2006
Адрес: СПб
По умолчанию 19.03.2007, 07:36

Пожалуй, ещё не встречал более абстрактной фототемы. Это примерно как "Вы легко узнаете, где у Вас болит. Пользуйтесь прилагаемым чертежом студии для съёмки в Х-лучах. После совмещения Ваших фотографий из 30-ти ракурсов небольшое затемнение на Вашем изображении покажет вероятное место постоянной боли".
Впрочем, насаждение культуры скриптов - дело неплохое.
Ответить с цитированием
  (#7) Старый
andyb andyb вне форума
заслуженный участник
Научный сотр.
 
Сообщений: 468
Регистрация: 27.10.2005
По умолчанию 19.03.2007, 09:39

Надеюсь, кому-то поможет, хотя конечно же это не панацея и руководстваваться нужно комплексно всем накомленным опытом в вопросе выбора. Успехов!
Ответить с цитированием
  (#8) Старый
vesakov vesakov вне форума
эксперт
Научный сотр.
 
Сообщений: 474
Регистрация: 30.06.2005
Адрес: Moscow
По умолчанию Поможет - 19.03.2007, 13:09

Цитата:
Сообщение от andyb
Надеюсь, кому-то поможет...
Поможет-поможет. Тему, точнее данные хорошо использовать при обсуждении/размышлениях о выборе фокусных расстояний зумов, фиксов. Я заметил, что любой мой зум используется в основном в крайних положениях, и редко в середине диапазона. Лучше (полезней) всего используются фиксы с кратными 2 фокусным расстояниями.
Если у зума диапазон начинался бы на 24мм (16мм на кропе), то он и был бы самым востребованным на широком угле...
Ответить с цитированием
  (#9) Старый
vasilych vasilych вне форума
эксперт
Мл. научный сотр.
 
Аватар для vasilych
 
Сообщений: 222
Регистрация: 27.09.2003
Адрес: Краснодар
По умолчанию 29.03.2007, 00:33

А пакет-то как установить?


А будете хамить - спущу @!
---------------------------------
Canon EOS 40D, Tamron 17-50 f/2.8, Canon EF 85 f/1.8 USM
Ответить с цитированием
  (#10) Старый
Юрий. Юрий. вне форума
постоянный участник
Зам.зав.лаб.
 
Аватар для Юрий.
 
Сообщений: 812
Регистрация: 03.09.2004
По умолчанию 29.03.2007, 01:03

andyb
Спасибо за работу. Скрипт нужный.
Однако не все будут им пользоваться, по причине установки ненужных им библиотек и т.д. Можете скомпилировать все в один экзэшник, будет совсем хорошо :beer:
Ответить с цитированием
  (#11) Старый
andyb andyb вне форума
заслуженный участник
Научный сотр.
 
Сообщений: 468
Регистрация: 27.10.2005
По умолчанию 29.03.2007, 11:14

Юрий
Можно и так сделать, но не знаю пока где екзешник выложить. На всякие rapidshare - долго не пролежит.
Если сделаю таки, отпишу сюда.

PS. Perl вариант мне еще импонировал тем, что это не бинарный файл. Т.е. никто не будет бояться подхватить какую-нибудь заразу.
Ответить с цитированием
  (#12) Старый
Ivanov_A Ivanov_A вне форума
участник
Лаборант
 
Сообщений: 43
Регистрация: 06.11.2006
Адрес: Москва
По умолчанию А вот такой программой не пробовали попользоваться? - 30.03.2007, 16:05

Есть такая вот программка - пользовался - вроде работает - графики строит.
http://www.dpcamera.ru/news/detail.php?ID=4014
Ответить с цитированием
  (#13) Старый
andyb andyb вне форума
заслуженный участник
Научный сотр.
 
Сообщений: 468
Регистрация: 27.10.2005
По умолчанию 30.03.2007, 17:25

Ivanov_A
Ай, опять кто-то опередил Ну вот и екзешник с графиками.
Спасибо за наводку.

Кстати, линк там уже устарел, вот новый
http://www.cpr.demon.nl/program/exposureplot_112.zip
Ответить с цитированием
  (#14) Старый
andyb andyb вне форума
заслуженный участник
Научный сотр.
 
Сообщений: 468
Регистрация: 27.10.2005
По умолчанию 29.03.2007, 11:10

Цитата:
Сообщение от vasilych
А пакет-то как установить?
Процедура проста: в пакете есть папка lib. Ее содержимое должно быть скопировано в одноименную папку perl (у меня, например, это C:\Perl\lib).

Иными словами, папка lib пакета Image-ExifTool-6.80 содержит то, что должно быть в папке lib интерпретатора perl.
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Реклама:



Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Хостинг предоставлен 100mb.ru
vBulletin Skin developed by: vBStyles.com
© Copyright 2005 - 2011