Телескопы покупают здесь


A A A A Автор Тема: Программное исправление дисторсии  (Прочитано 9027 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GNMАвтор темы

  • Новичок
  • *
  • Сообщений: 49
  • Благодарностей: 0
    • Сообщения от GNM
Хочу попробовать написать программу, исправляющую дисторсию на цифровых снимках. Ясно, что дисторсия зависит от объектива. Но есть ли какое-то общее правило, по котоорому смещаются точки на изображении? Где об этом можно почитать?

Я вижу программу в таком виде: Загружается изображение, проводится прямая так, чтобы ее концы совпадали с концами какой-либо линии на изображении, которая была прямой на объекте. Перемещаем ползунок корректора дисторсии так, чтобы нарисованная и реальная линии слились. Возможно ли это?

Оффлайн Leshy

  • *****
  • Сообщений: 1 393
  • Благодарностей: 238
  • Чистого неба!
    • DeepSkyHosting: Leshy
  • Награды Призер конкурса астрофото
    • Сообщения от Leshy
    • Персональная страница
Re: Программное исправление дисторсии
« Ответ #1 : 25 Окт 2005 [09:18:51] »
Мне кажется, что многие программы это уже умеют, правда, о математике этого дела ничего не скажу - не знаю... А программы - тот же PanaVue, PanoramaMaker (последний поставляется в стандартной комплектации с Никонами, во всяком случае, в моем 4300 есть)
Они предназначены для исправления снимков перед склейкой панорам, но, думаю, можно и для одиночного кадра приспособить. Жаль, я сейчас на работе, этого софта под рукой нет, проверить не на чем...
Андрей Олешко http://oleshko.net.ru/, http://astroexperiment.ru
EQ6 Pro SynScan, SW 250PDS, SW ED80, AstroTech 65Q,
ASI 174MM, ASI185MC, Canon 6Da, Canon 550Da, Samyang 135 f/2, Sigma 50 f/1.4 Art, SW StarAdventurer

Оффлайн GNMАвтор темы

  • Новичок
  • *
  • Сообщений: 49
  • Благодарностей: 0
    • Сообщения от GNM
Re: Программное исправление дисторсии
« Ответ #2 : 25 Окт 2005 [16:02:00] »
Свою программу я все равно хочу написать. Так что нужны формулы. Как я понимаю, каждая точка смещается вдоль прямой, соединяющей ее с центром изображения (объектив - штука цетрально симметричная. поэтому помимо таких искажений мог бы быть еще только поворот, но такого не наблюдается). Так что нужно знать функцию dr = f(r), где dr - смещение точки, r - расстояние от центра изображения до точки.

Видимо самый простой вариант - взять пару оптических схем (например классические объективы миркоскопа и телескопа), прогнать через какой-либо оптический CAD и узнать смещенеие точек для 3..4 вариантов. Может кто-нибудь уже видел подобные результаты? Каким софтом лучше воспользоваться? Где его взять? Где взять параметры оптических схем простейших объективов?

Serge Chuprakov

  • Гость
Re: Программное исправление дисторсии
« Ответ #3 : 25 Окт 2005 [18:11:44] »
Видимо самый простой вариант - взять пару оптических схем (например классические объективы миркоскопа и телескопа), прогнать через какой-либо оптический CAD и узнать смещенеие точек для 3..4 вариантов. Может кто-нибудь уже видел подобные результаты? Каким софтом лучше воспользоваться? Где его взять? Где взять параметры оптических схем простейших объективов?

Здесь дело вот как обстоит - в виде формул дисторсию, вообще говоря, выразить нельзя.Можно выразить дисторсию третьего и пятого порядков, но если пятый порядок сравним с третьим, то ОБЯЗАТЕЛЬНО будут велики седьмой и выше, а для седьмого и выше даже формул не существут, так как они настолько сложны, что не имеют практической ценности. Я так говорю, потому что пробовал написать программу для исправления дисторсии с помощью коэффициентов дисторсии. Так вот, попались мне фотографии снятые объективом Мир-26 (45 мм на средний формат - обычный широкоугольник) - третьего и пятого порядков оказалось просто недостаточно! В центре поля все (2w = 40-50 градусов) кое-как работало, а на краю - увы... Я то по-наивности думал - подберу руками пару цифирек и успокоюсь. Естественно, ситуация повторилась с Зодиаком (30 мм на СФ) и с Зенитаром (17 мм на узкую пленку). В качестве упражнения пробовал Мир-36 (65 мм на СФ) - на 2+. Сильно ошибся.
А ДОСТОВЕРНЫЙ конструктив даже простейших объективов (типа индустара или планара) вы нигде не найдете.  Хотя действительно - это единственное, что нужно для самого точного исправления дисторсии на снимках - нельзя не согласиться.
« Последнее редактирование: 25 Окт 2005 [18:17:51] от Serge Chuprakov »

Оффлайн GNMАвтор темы

  • Новичок
  • *
  • Сообщений: 49
  • Благодарностей: 0
    • Сообщения от GNM
Re: Программное исправление дисторсии
« Ответ #4 : 25 Окт 2005 [19:30:43] »
Да, печально.

Однако где посмотреть формулы для 3-го и 5-го порядков дисторсии? Может исправление умеренной и малой дисторсии проще? Вы-то экспериментировали с широкоугольниками с большой дисторсией. Да объеткив для начала сошел бы попроще.

Ernest

  • Гость
Re: Программное исправление дисторсии
« Ответ #5 : 25 Окт 2005 [22:21:36] »
Дисторсия в том числе и с учетом нецентрированных членов описывается полевыми полиномами цернике.
Через недельку буду дома могу подкинуть список формул.
В простейшем случае будет достаточно коэффициентов ответственных за ошибку увеличение, центрированных членов 3-го и 5-го (для широкоугольных объективов может быть и 7-го) порядков, 4-х или 6-и децентрированных членов (по паре на перспективное искажение, параболическую дисторсию 2-го и может быть четвертого порядка), как минимум пары астигматических (олтветсвтвенных за анаморфот). Не считая установочных - смещения по обеим осям.
Проблема в том, чтобы получить эти коэффициенты для конкретного образца объектива. Придется сделать несколько снимков звездного неба, точно промерить координаты звезд (их число должно быть примерно вдвое-трое больше к-ва требуемых коэффициентов), вычислить ошибки положения и решив систему линейных уравнений методом наименьших квадратов получить искомые коэффициенты.
Ну а потом еще и применить - это уже отдельная головная боль.

Оффлайн drammer

  • ****
  • Сообщений: 276
  • Благодарностей: 13
  • Нетвёрдой рукой держит руль механизатор А.Репов...
    • Сообщения от drammer
Re: Программное исправление дисторсии
« Ответ #6 : 25 Окт 2005 [23:49:59] »
А ДОСТОВЕРНЫЙ конструктив даже простейших объективов (типа индустара или планара) вы нигде не найдете.
Как говаривали в старину дипломаты: "это не есть факт"!
Вот схема и конструктивные данные объектива "Индустар", из книги "Справочник фотолюбителя", 1961 года выпуска (не забывайте букинистические магазины, это - кладезь!!!  ;) )  Ну а насчет оптического CADа  - тут вам и Google в руки!  Считайте на здоровье!  8)


Оффлайн GNMАвтор темы

  • Новичок
  • *
  • Сообщений: 49
  • Благодарностей: 0
    • Сообщения от GNM
Re: Программное исправление дисторсии
« Ответ #7 : 26 Окт 2005 [04:01:35] »
Дисторсия в том числе и с учетом нецентрированных членов описывается полевыми полиномами цернике.
Через недельку буду дома могу подкинуть список формул.

Если не затруднит, подкиньте формулы. (Это, кстати, не они? http://www.optics.ru/zernike.htm) Вот только боюсь придется объяснять (или хоть дать ссылку) смысл полиномов цернике. В интернете я, конечно поищу. Но боюсь объяснения там нет.

А может (если уж фотографировать звезды) можно и без них? Как я понимаю, каждую точку нужно смещать по прямой, соединяющим ее с центром изображения. По другому я не могу себе представить работу некоего осесимметричного изделия. Величина смещения зависит от расстояния до цетра. Эту зависимоть в любом случае можно апроксиммировать рядом a1*r+a2*r*r+a3*r*r*r и так далее. Коэффициенты можно получить имея тестовые изображения звезд (пока не думал как). Я где-то ошибаюсь? Или полиномы цернике несут в себе какую-то дополнительную информацию о дисторсии?
« Последнее редактирование: 26 Окт 2005 [04:17:48] от GNM »

Ernest

  • Гость
Re: Программное исправление дисторсии
« Ответ #8 : 26 Окт 2005 [10:13:11] »
Дисторсия только в расчете центрированная.
У каждого образца объектива есть ошибки изготовления и сборки, которые существенным образом искажают расчетную дисторсию и она приобретает дополнительные члены, в том числе и децентрированные и астигматичные (анаморфот). Впрочем, их вклад может оказаться не столь и велик и в самом первом приближении ими можно будет пренебречь.

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

Из того списка на который Вы сослались интересны только те, которые имеют r в первой степени - остальные описывают апертурные аберрации, не имеющие отношения к дисторсии.

Оффлайн Cаша

  • **
  • Сообщений: 74
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Cаша
Re: Программное исправление дисторсии
« Ответ #9 : 28 Окт 2005 [18:20:40] »
Тема заинтересовала. Хотелось бы обмозговать.
Но недостаток теоретических познаний дает о себе знать...

Эрнест! Одно перечисление Вами аберраций уже звучит как музыка!  ;)
Но хотелось бы получше разобраться в существе вопроса, понять о чем идет  речь.

Для этого очень не хватает точных определений. Есть несколько вопросов к специалистам.
 
Хотя бы в двух словах:

  • Что есть "порядок дисторсии"?
  • В чем суть "полиномов цернике"? И куда подставлять эти цифры (см. вышеупомянутый сайт)?
  • Каково определение "ортогональности на круге"?
  • Опять же что это за круг, и как он связан с нашей задачей?
  • И еще вопросец дискуссионного толка: неужели ошибки изготовления и сборки на современном производстве объективов настолько велики, что "существенным образом искажают расчетную дисторсию"? Что же  например при настройке резкости  характер дисторсии не вращается вместе с кольцом объектива?  :-\

Оффлайн Cаша

  • **
  • Сообщений: 74
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Cаша
Re: Программное исправление дисторсии
« Ответ #10 : 29 Окт 2005 [21:05:18] »
И еще. "Цернике" - это термин или фамилия? Если второе, то почему не с большой буквы?  ;)

Serge Chuprakov

  • Гость
Re: Программное исправление дисторсии
« Ответ #11 : 30 Окт 2005 [08:48:19] »
Как говаривали в старину дипломаты: "это не есть факт"!
Вот схема и конструктивные данные объектива "Индустар", из книги "Справочник фотолюбителя", 1961 года выпуска (не забывайте букинистические магазины, это - кладезь!!!  ;) )  Ну а насчет оптического CADа  - тут вам и Google в руки!  Считайте на здоровье!  8)
Как говаривали в старину дипломаты "это не есть факт!"
Ну ка, найдите в каком нибудь "букинисте", плз, конструктивные данные для объектива Мир-26 или Зодиак! Тут некоторые люди деньги гтовы заплатить за это - у. е. Они фоторафы-профессионалы.
Мало ли что посчитали нужным опубликовать в книжке 44 летней давности. Что это за Индустар там (номер?), откуда, кто им сейчас снимает? :)

Оффлайн GNMАвтор темы

  • Новичок
  • *
  • Сообщений: 49
  • Благодарностей: 0
    • Сообщения от GNM
Re: Программное исправление дисторсии
« Ответ #12 : 31 Окт 2005 [02:53:40] »
Конечно, оптические схемы реальных объективов найти видимо неудастся. Однако, посмотреть на искажения, создаваемые старыми объективами тоже интересно (ведь они же расчитывались).

Нашел кое-какие ссылки по полиномам цернике:
http://mathworld.wolfram.com/ZernikePolynomial.html
http://www.optics.arizona.edu/jcwyant/Zernikes/ZernikePolynomials.htm

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

Раскладывают в этом базисе обычно толи волновой фронт, толи его ошибку.

Как связан волновой фронт с дисторсией, мне не ясно.

Из того списка на который Вы сослались интересны только те, которые имеют r в первой степени - остальные описывают апертурные аберрации, не имеющие отношения к дисторсии.
r в первой степени там только в полиномах (1;1), (-1;1), (1;3), (-1;3), (1;5), (-1;5), (1;7), (-1;7). Это они? Если да, то все равно в Вашем первом посте перечисленно больше аберраций. Где взять остальные?
« Последнее редактирование: 31 Окт 2005 [03:49:57] от GNM »

Оффлайн GNMАвтор темы

  • Новичок
  • *
  • Сообщений: 49
  • Благодарностей: 0
    • Сообщения от GNM
Re: Программное исправление дисторсии
« Ответ #13 : 14 Ноя 2005 [05:04:46] »
Уважаемый Эрнест. Может Вы все же поможете мне разобраться с полевыми аберрациями и полиномами Цернике?

Вот здесь http://www.optics.arizona.edu/jcwyant/Zernikes/Zernikes.pdf упоминается про некий коэфф. дисторсии W311. Я так и не понял, откуда он взялся. Но там же упоминается кома W31, фокус W20 и т.д. выраженные через коэффициенты полиномов Цернике. Что в этой статье обозначается буквой W?

Есть несколько готовых программ, исправляющих дисторсию:
1. Photoshop CS2 - фильтр lens correction - просто можно подвигать рычажок и подобрать его положение по наиболее понравившемуся виду изображения;
2. PTlens http://epaperpress.com/ptlens/. Тут искажения считаются центрально-симметричными и раскладываются в ряд до четвертой степени (коэффициент при первой степени подбирается так, чтобы сохранить масшаб изображения в целом). В общем это более или менее совпадает с моей идеей.

Можно ли сделать что-то лучше?

В программе PTLens, почему-то, fisheye объективы исправляются тоже с помощью ползунка и подбора на глаз. Кроме того, при подборе коэффициентов, не рекомендуется использовать изображения с "parallax distortion" (с линейной переспективой?). Почему?

Оффлайн GNMАвтор темы

  • Новичок
  • *
  • Сообщений: 49
  • Благодарностей: 0
    • Сообщения от GNM
Re: Программное исправление дисторсии
« Ответ #14 : 09 Дек 2005 [20:30:07] »
Видимо, программное исправление дисторсии никому не нужно.

Но, может быть, кто-нибудь все же ответит на вопрос?
Все программы анализа оптических систем (Zemax, Oslo, Optalix) выдают значение дисторсии в процентах. Я так понимаю, что это отношение чего-то к чему-то. Мне кажется, что это отношение смещения точки из-за дисторсии к расстоянию до центра изображения. Я прав?

Оффлайн Pavel_Boboshkin

  • ****
  • Сообщений: 267
  • Благодарностей: 10
  • Мне нравится этот форум!
    • Сообщения от Pavel_Boboshkin
    • Киевский клуб телескопостроения -"Максутов-клуб"
Re: Программное исправление дисторсии
« Ответ #15 : 09 Дек 2005 [22:04:19] »
Мне кажется, что это отношение смещения точки из-за дисторсии к расстоянию до центра изображения. Я прав?
Если бы это было так, то это было бы просто изменением масштаба изображения.
Смещение точки из за дисторсии зависит от расстояния до центра изображения не линейно.

Serge Chuprakov

  • Гость
Re: Программное исправление дисторсии
« Ответ #16 : 10 Дек 2005 [04:47:30] »
Дисторсия, обычно, выражается как отношение

D=(Yr-Yp)/Yp*100%

Yp - расстояне от оптической оси параксиального главного луча
Yr - расстоянию от оптической оси реального главного луча.
Это отношение для каждого полевого угла выражается в процентах. А вот Yr зависит от полевого угла очень нелинейно...

Voronakin

  • Гость
Re: Программное исправление дисторсии
« Ответ #17 : 20 Фев 2006 [06:10:43] »
Целью моего диплома является исследование и разработка алгоритма исправления дисторсии на растровых изображениях!
Интересует? 8)

tlgleonid

  • Гость
Re: Программное исправление дисторсии
« Ответ #18 : 20 Фев 2006 [10:03:52] »
Мне кажется наиболее разумным способом изучения дисторсии конкретного объектива - это сфотографировать сетку, а затем ее (сетку) апроксимировать.

Суворов Владимир

  • Гость
Re: Программное исправление дисторсии
« Ответ #19 : 20 Фев 2006 [10:13:55] »
Хочу попробовать написать программу, исправляющую дисторсию на цифровых снимках. Ясно, что дисторсия зависит от объектива. Но есть ли какое-то общее правило, по котоорому смещаются точки на изображении? Где об этом можно почитать?

Я вижу программу в таком виде: Загружается изображение, проводится прямая так, чтобы ее концы совпадали с концами какой-либо линии на изображении, которая была прямой на объекте. Перемещаем ползунок корректора дисторсии так, чтобы нарисованная и реальная линии слились. Возможно ли это?
Проще написать фильтр. Сразу все изображение сваливаем в массив и прочесываем его этим фильтром.