Olga_Zim писал(а):
Немного не поняла про Ваш модуль калибровки. Он работает с серией снимков с разным масштабом, по ним замеряется ширина поля зрения и берется дистанция фокусировки из EXIF. А затем по графику рассчитывается уравнение. Или ширина кадра это изначально расчетная величина (по уравнению)? Как тогда определяются коэффициенты для уравнения?
Технология у меня такая:
1. Делается серия снимков линейки (тут для макромасштабов предпочитаю снимать штангенциркуль), начиная от минимальной дистанции и кончая максимальной, на которую ещё способен навестись объектив (предполагается, что он с насаженной/ыми макролинзой/ами, поэтому на бесконечность не наводится), понемногу отодвигая камеру от линейки. По ходу съёмок у меня запускается ещё один модуль, который сразу же загружает новые снимки и считывает оттуда EXIF: таким образом можно оперативно смотреть изображения в полноразмере и дистанции фокусировки, сразу отбраковывая-удаляя неудачные снимки и тут же переснимая заново:
Вложение:
EditWindow.png
Эта небольшая прога вообще-то запускается при всех съёмках, поэтому там есть ещё некоторые функции, вроде автопереименования файлов и добавления коммента в EXIF.
2. Запускается калибровочная программа, в которую загружается эта серия снимков. На крайнем снимке с максимальным масштабом выбираются две далеко расположенные риски на линейке, расположенные вблизи от противоположных сторон кадра (по горизонтали), на них ставятся вот такие красные маркеры-кружочки:
Вложение:
MSCal_Image.png
Тут программа кажет два окошка - это два фрагмента одного и того снимка, просто расположенных в его разных местах. Маркеры надо ставить на одну определённую сторону риски (она довольно широка при большом увеличении), в хорошо узнаваемое место. XY-координаты каждого маркера программа записывает в таблицу:
Вложение:
MSCal_Main.png
Расстояние между рисками/маркерами (как в мм, так и в пикселах) получается известным и достаточно точным, именно по нему программа просто рассчитывает уточнённую ширину всего поля зрения в мм.
Потом загружается следующий кадр. На нём программа в этой паре окошек показывает маркеры в старом положении: их надо немного сдвинуть в соответствии с изменившимся масштабом.
Потом следующий кадр и т.д. всю серию.
3. В программе-калибраторе нажимается кнопычка "Process profile" - и она с помощью МНК рассчитывает 4 коэффициента С
0..C
3 того уравнения FW = C
0 + C
1 / D + C
2 / D
2 + C
3 / D
3. Саму форму аппроксимационного уравнения я нашёл с помощью одной из программ-фиттеров, им зависимость описывается очень хорошо (в т.ч. лучше, чем простой степенной функцией).
Такой подход, кмк, обеспечивает вполне высокую точность измерений.
Olga_Zim писал(а):
Я заморочилась, сняла серию снимков линейки с разным увеличением, от 1:1 до примерно 1:14 (41 снимок). увеличение изменялось приблизительно, не очень равномерно, но стремилась к относительной равномерности. (насколько это можно сделать в моих не очень подходящих нынешних условиях работы
) Потом измерила в фотошопе длину мм в пикселях в каждом кадре из серии и одновременно брала дистанцию фокусировки из EXIF. (всегда измерялся один и тот же мм на линейке для большей точности)
В результате получилась странная для меня вещь. Дистанция фокусировки, записанная в EXIF, изменяется "скачкообразно", т.е. она одинакова для целого ряда моих "увеличений". Причем действительно, на увеличениях близких к 1:1, как показалось, точность значительно меньше (разброс длины мм при номинально одинаковой дистанции в начале ряда до 40 пикселей, в конце около 10). может, это незначительно. хотя визуально разница в ширине кадров 1-1.5 мм.
в приложенном файле, если интересно, график.
Средствами Excel вычислить уравнение для получившегося графика получается очень приблизительно. Но видимо пока точнее никак.
Хотя особенно большая точность и не нужна.
Я еще не пробовала мерять с насадочными линзами. Будет следующий шаг. Интересно же
В принципе получается, что точно вычислить масштаб по данным EXIF практически невозможно?
Это уже больше интерес
Вот это скачкообразное изменение, я подозреваю, как раз из-за того, что слишком велика дискретность значений, передаваемых объективом в камеру и впоследствии записываемых в EXIF.
Ещё, что может оказаться критически важным, ежели рассматривать зеркалку с макрообъективом:
У меня сейчас складывается такое пока что только впечатление (но переходящее в уверенность), что как раз макролинзы в этом деле - это тот способ, с помощью которого существенно повышается точность определения масштаба. Объектив с макролинзами не наводится на бесконечность и тогда весь диапазон допустимых дистанций оказывается "под носом", т.е. диапазон возможных масштабов сводится к весьма небольшой величине! Т.е. тогда тот дискретный ряд значений дистанций фокусировки из EXIF оказывается "размазанным" не от долей метра до бесконечности, а будет зажат в гораааздо более узком интервале.