10447

Методы передискретизации изображений

Лабораторная работа

Информатика, кибернетика и программирование

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

Русский

2013-03-26

853 KB

36 чел.

Методы передискретизации изображений.

Задача передискретизации изображений является весьма распространенной задачей, которую необходимо решать в цифровой обработке изображений. В простейшем случае передискретизация изображений используется при изменении масштаба изображений. Такая передискретизация реализована во всех современных вьюверах изображений. Более сложным случаем является передискретизация с целью какой-либо пространственной трансформации изображений. Целями пространственной трансформации могут быть:

- поворот изображений на угол, не кратный 900;

- компенсация наклона камеры при съемке;

- устранение дисторсии объектива;

- устранение влияния колебаний сенсора при съемке путем сканирования;

- устранения геометрических искажений, присущих тому или иному виду съемки;

- координатная привязка аэрокосмических снимков;

- придания художественного эффекта.

Вообще же закон передискретизации в данной лабораторной работы может быть достаточно произвольным.

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

Рисунок 1 – Сетка при изменении масштаба в 1.25 раза. Кружками показаны пикселы исходного изображения, звездочками – пикселы нового изображения.

В случае изменения масштаба закон определения координат точек нового изображения весьма прост:

X(i,j) = 1/Z*i.

Y(i,j) = 1/Z*j.

Здесь Z – величина масштаба получаемого изображения (в вышеприведенном примере на рисунке 1 – Z = 1.25),

i, j – индексы точек нового изображения, которые при отображении нового изображения (в прямоугольной сетке) будут иметь смысл новых координат.

Таким образом, задача передискретизации сводится к следующей: при наличии известных координат «новых» пикселей на «старом» изображении X(i, j) и Y(i, j) вычислить значение яркости E(i, j) в точках с этими координатами для всех пикселей нового изображения, т.е. для всех i и j. А затем просто вывести изображение E(i, j) в прямоугольно сетке.

Более сложным примером, по сравнению с изменением масштаба, является компенсация оптической дисторсии изображений. Оптическая дисторсия изображений проявляется в том, что объектив вносит паразитный сдвиг элементов изображения вдоль прямой, проходящий через центр полученного изображения на величину, пропорциональную третьей степени расстояния до оптической оси. Если сдвиг направлен от оптической оси, речь идет о подушкообразной дисторсии, если к оптической оси – о бочкообразной дисторсии. Примеры дисторсии приведены на рисунке 2.

Рисунок 2 – Подушкообразная и бочкообразная дисторсия.

Для коррекции дисторсии используется сетка, координаты узлов которой вычисляются по следующему алгоритму.

Вычисляются полярные координаты пиксела:

R(i,j) = ((i-Nx/2)2+(j-Ny/2)2)0.5

φ(i,j) = acos(i/j).

Здесь Nx и Ny – размеры изображения по каждой координате.

Вычисляется новое значение расстояния до (цента изображения) оси визирования:

R2(i,j) = R(i,j)+k*R(i,j)3.

Здесь k – малое число (порядка (0.01/Nx)3), зависящее от величины дисторсии, которую необходимо компенсировать.

Затем вычисляются декартовы координаты новой точки сетки:

X(i,j) = R(i,j)*cos(φ (i,j))+Nx

Y(i,j) = R(i,j)*sin(φ (i,j))+Ny

При этом необходимо следить за знаком перед тригонометрическими функциями. Поэтому это преобразование удобно делать по «четвертям» изображения.

Для определения значений сигнала в узлах новой изображения можно использовать двумерный аналог sinc-функции, который представляет собой преобразование Фурье от двумерного прямоугольного окна:

 

или использовать функцию, спектр которой имеет вид "пенька":

На практике в цифровой системе воспроизведения сложно использовать оптимальный восстанавливающий фильтр.

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

В следующей таблице приведены некоторые разделимые интерполяционные функции. Разделимость означает, что интерполяция может выполняться сначала по одной, а затем по второй координате.

Функция

Определение

Sinc

Прямоугольная

Треугольная

Колоколообразная

Кубический В-сплайн

Гауссова

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

Рисунок 3 – Кусочно-линейная и билинейная интерполция.

При кусочно-линейной интерполяции интерполяционные функции применяются последовательно к обеим координатам, причем отдельно для участков 1 и 2. Алгоритм в случае билинейной интерполяции очевиден из рисунка.

Список полезных функций MATLAB.

imread – чтение изображения из графического фвойла

conv2 – двумерная свертка,

image, imagesc, imshow – вывод изображения на экран,

double – преобразование числе к типу double


Примеры передискретизации изображений:

Исходное изображение

Коррекция перспективных искажений

Трансформация для координатной привязки.

Поворот изображения.

Случайные колебания носителя при сканерной съемке.

Художественная трансформация.


Задание для лабораторной работы.

  1.  Выбрать какое-либо изображение.
  2.  Определиться с типом преобразования.
  3.  Определиться с видом передискретизации.
  4.  Определить закон определения узлов новой сетки.
  5.  Вывести на экран сетку для «нового» изображения в «старых» координатах.
  6.  Осуществить передискретизацию и вывести полученное изображение на экран.

№ п/п

Тип преобразования

Максимальная

оценка

  1.  

Изменение масштаба

3

  1.  

Коррекция перспективных искажений

4

  1.  

Коррекция дисторсии

3

  1.  

Коррекция случайных колебаний при сканирующей съемке

4

  1.  

Красивое художественное преобразование

5

№ п/п

Способ передискретизации

Максимальная

оценка

  1.  

Прямоугольная

3

  1.  

Линейная

4

  1.  

Билинейная

4

  1.  

Колоколообразная

5

  1.  

В-сплайн

5

PAGE   \* MERGEFORMAT7


A

B

D

1

2

A

B

C

D