2. Реализовать компьютерную программу, принимающую на выход изображение и выполняющую преобразование дисторсии.
3. Провести апробацию реализованной программы на различных изображениях.
Теоретическая часть
Дисторсия (рис. 1) возникает в результате смещения относительно своего идеального положения точек, лучи от которых идут под небольшим наклоном к оптической оси системы. Эта аберрация наблюдается как сжатие изображения к центру (подушкообразная дисторсия) или расплывание от центра (бочкообразная дисторсия). Дисторсия может возникать даже в случае устранения всех рассмотренных видов аберраций.
Рассмотрим процесс формирования изображения в идеальной оптической системе. Пусть расположение каждой точки в плоскости, перпендикулярной оптической оси задается вектором , где x и y – пространственные координаты в этой плоскости.
В изображении, сформированном в идеальной оптической системе, положение каждой точки может быть описано вектором
,
где – коэффициент оптического увеличения. Эффект дисторсии заключается в неправильном относительно идеального расположении точек на изображении. Причем в случае дисторсии координаты вектора зависят только от удаленности точки от оптической оси и коэффициентов дисторсии
,
где , , , … – коэффициенты дисторсии различных порядков, – длина вектора .От знака перед коэффициентом дисторсии зависит ее вид: подушкообразная или бочкообразная. Для осесимметричныхых оптических систем присутствует дисторсия только нечетных порядков.
Дисторсия выше третьего порядка на практике наблюдается редко, поэтому часто для коррекции достаточно использовать формулу
.
Если в оптической системе присутствуют другие виды аберраций, то выражение для вектора усложняется добавлением дополнительных слагаемых.
Дисторсия на цифровых изображениях может быть скорректирована программными средствами. Наиболее простой способ коррекции дисторсии – это применение к искаженному изображению преобразования дисторсии с противоположным знаком.
При известных параметрах оптической системы, формирующей искаженные изображения можно точно рассчитать параметры обратного преобразования, однако зачастую такая информация отсутствует. В этом случае приходится осуществлять ручной или эвристический подбор корректирующего коэффициента дисторсии.
Экспериментальная часть
Функция дисторсии, реализованная на языке MATLAB.
function[res] = distortion(img, f3, f5, inc)
% distortion - функция, реализующая дисторсию пятого порядка
% для изображения img с коэффициентами дисторсии f3, f5