|
(1)
При этом суммарное число узлов сетки s П равно MN. Перейдем в плоскости П к новым координатам. Приняв размеры сетки Х=У=1, получаем: . (2) Следовательно, координаты узлов сетки s П выразятся так: (3) Число узлов сетки s Г выбирают так, чтобы было обеспечено взаимно однозначное соответствие между изображениями, заданными на s П и его дискретным преобразованием Фурье, заданным на s Г. Это число узлов также оказывается равным MN. Последнее определено тем, что в системе, состоящей из MN точек, полной является система тригонометрических функций с частотами (4) Соотношения между размерами сеток s П и s Г получим из (1) с учетом того, что и (5) Выбор сеток в плоскостях П и Г означает, что все непрерывные функции в этих плоскостях могут быть представлены своими дискретными значениями в узлах сетки. Эти значения теперь являются функциями номеров узлов, т.е. m и n в плоскости П, p и q в плоскости Г. Для отличия от непрерывных величин аргументы дискретных величин будем обозначать индексами, например Еmn, вместо Е(хm,уn), Аpq вместо А(р,q). Установим соответствие между основными физическими величинами, рассмотренными ранее, и их цифровыми моделями. Поле в плоскости П представим так: (6) дискретное преобразование Фурье от hmn определит соотношение: (7) Примем c учетом (6) (8) Цифровая модель голограммы Фурье будет иметь вид (9) где (10) Величину можно интерпретировать как коэффициент двойного ряда Фурье от дискретной функции, заданной на двумерном интервале MN. При этом в уравнении голограммы последнее слагаемое является не чем иным, как косинусным коэффициентом Фурье изображения предмета. С учетом изложеного уравнение цифровой голограммы Фурье, удобное для расчетов на ЭВМ, принимает вид: (11) Здесь в общем случае имеем (12) (13) (14) В двух первых формулах последние члены в прямоугольных скобках используются при наличии рассеивателя со случайной фазой. Если рассеиватель не используют, то они равны нулю и формула упрощается. При компьютерном расчете структуры голограммы исходной информацией является изображение, которое разбивают на отдельные участки в соответствии с выбранной сеткой (т.е. из изображения делают выборку значений Еmn в узлах сетки), а также задаваемые параметры M, N, kГ, . В результате расчета должны быть получены величины прозрачности голограммы в узлах сетки Г. Основой вычисления является выполнение дискретного преобразования Фурье (ДПФ), причем двумерное преобразование выполняется в два этапа: сначала по строкам, а затем по столбцам. Последовательность вычислений показана на рис.2. Для выполнения одномерных преобразований используется алгоритм быстрого преобразования Фурье (БПФ). Для удобства вычислений матрицу , полученную после преобразования строк, транспонируют и повторное преобразование также выполняют по строкам. В результате двойного БПФ получают коэффициенты и по которым и определяют значения . Результаты вычислений вместе с заданными параметрами используют для расчета прозрачности голограммы по ее формуле. Эти значения и выдает машина. Отпечатанную цифровую голограмму затем фотографируют с соответствующим
уменьшением и используют для восстановления | ||||||||||
|
|||||||||||
Рис. 2 Последовательность вычислений голограммы Фурье |
изображения оптическим путем. Очень часто голограмму Фурье пеставляют в двоичном (бинарном) виде. В этом случае ее прозрачность имеет только два значения: 0 или 1. Двоичную голограмму рассчитывают следующим образом. Прозрачность голограммы как функцию пространственных частот обозначим через . Выберем некоторый порог А'. Если больше или равно А', то величине сопоставим единицу, в противном случае– нуль. Это возможно записать как
(17)
В данном случае 1 соответствует уровню белого, а 0 - черного. Окончательно получим
(18)
В выборе параметров b и имеется определенный произвол. В общем случае их увеличение приводит к снижению доли высоких пространственных частот в голограмме. Сама же двоичная голограмма в большой степени подчеркивает высокие пространственные частоты.
Киноформ
Часто встречаются случаи, когда комплексная амплиуда объектной световой волны в плоскости регистрации голограммы практически постоянна по модулю. В таких случаях изображение интересующего объекта может быть восстановлено с использованием только фазовой информации . Как правило, это имеет место, когда голографируемый объект является диффузным или освещен диффузно рассеянным светом. Однако освещение объекта световой волной со специально выбранным детерминированным распределением фаз также приводит к объектной световой волне практически постоянной амплитуды в плоскости регистрации голограммы. Таким образом, в указанных здесь случаях, записав только фазовую информацию об объекте, можно восстановить трехмерное изображение интересующего объекта. Получаемая при этом запись называется киноформом. Киноформ не является голограммой в полном смысле этого слова, так как он содержит не полную информацию об объекте, а только фазовую. Киноформ обладает тем замечательным свойством, что в отличие от других типов голограмм при идеальном изготовлении восстанавливает только одно изображение - мнимое или действительное. Это означает, что весь световой поток, дифрагированный киноформом, концентрируется на одном изображении.
Процесс изготовления киноформа выглядит следующим образом.
На компьютере рассчитываются дискретные значения фазы объектной световой волны. Полученные значения фазы обрабатываются таким образом, чтобы их отклонения от начальной фазы лежали в интервале от 0 до 2p радиан по всей области выборки, т.е. из каждого значения фазы вычитаются величины, кратные 2p радианам. В результате получается двумерный массив, состоящий из дискретных значений фазы
(19)
Данный массив кодируется массивом значений яркости в многоградационной шкале, который уже отображается в виде картины на выходное устройство компьютера, например на дисплей. Полученная картина фотографируется с необходимым уменьшением и конечный фотоснимок отбеливается в дубящем отбеливателе. При отбеливании градации фотографического почернения превращаются в соответствующее распределение значений оптической толщины. Полученный таким образом киноформ имеет функцию пропускания
(20)
Знак показателя экспоненциального сомножителя определяется тем, что используется в качестве киноформа- негатив или позитив фотоснимка картины киноформа. Соответственно и изображение, восстанавливаемое киноформом, будет мнимым или действительным.
Из рассмотрения функции пропускания киноформа (20) следует, что для восстановления исходного волнового фронта без искажений необходимо, чтобы константа с равнялась единице. Это означает, что свет, падающий на участок с фазой , будет задерживаться ровно на одну длину волны по сравнению со светом, падающим на участок с фазой . Если такое согласование фаз было достигнуто, то весь свет, падающий на киноформ, будет участвовать в формировании единственного (действительного или мнимого) изображения записанного обекта. В противном случае киноформ подобен осевой голограмме, в которой действительное и мнимое изображения частично накладываются; часть света дифрагирует в нулевой порядок, создавая яркое пятно в центре изображения. Качество изображения резко ухудшается. На практике согласование фаз достигается путем тщательного контроля процессов экспонирования и проявления уменьшенных фотоснимков киноформа, а также отбеливания.
При расчёте, были получены несколько двоичных файлов. По техническим причинам, законченная голограмма не была изготовлена.
В настоящее время существует большое количество способов записи и обработки получаемой в когерентном свете оптической информации о структуре того или иного физического объекта. Самый распространенный из них состоит в получении с помощью оптической системы изображения интересующего объекта, его регистрации с использованием возможностей фото- и видеотехники и в последующей апостериорной обработке изображения. Другой способ, также получивший широкое распространение, основан на получении голограммы объекта. Этот способ, в отличие от первого, позволяет регистрировать информацию не только о распределении интенсивности света, отраженного или излучаемого объектом, но и о распределении фазы световых колебаний. Последнее обстоятельство создает дополнительные возможности по корректировке характеристик изображения.
Термин "компьютерная оптика" является относительно новым и не приобрел еще строгого определения. Разные авторы очень часто вкладывают в него различное содержание. Можно сказать, что в самом широком смысле слова "компьютерная оптика" - это компьютеры в оптике и оптика в компьютерах. Сюда относятся численные решения задач дифракции и фокусировки излучения, автоматизированное проектирование и гибкое автоматизированное производство оптических систем, обработка изображений, оптический вычислительный эксперимент, оптические процессоры и запоминающие устройства, цифровая голография.
Очень часто формулировка предмета компьютерной оптики как научного направления сужается и в нее вкладывается более конкретный смысл. При этом считается, что компьютерная оптика - это получение на основе применения ЭВМ оптических элементов, осуществляющих требуемое преобразование волновых полей.
.
1. Сисакян И.Н., Сойфер В.А. Компьютерная оптика. Достижения и проблемы //сб. "Компьютерная оптика" под ред. акад. Велихова Е.П. и акад. Прохорова А.М., 1987, в.1, с.5-19.
2. Сойфер В.А. Компьютерная оптика //Соросовский образовательный журнал, 1998
3. Франсон М. Голография.- М.: Мир, 1972, 248 с.
4. Горохов Ю.Г., Неплюев Л.Н. Голография в приборах и устройствах.- М.: Энергия,1974, 80 с.
5. Федоров Б.Ф., Цибулькин Л.М. Голография.- М.: Радио и связь, 1989, 140 с.
6. Кузнецова Т.И. О фазовой проблеме в оптике //УФН, 1988, т.154, в. 4, с. 677-690.
7. Воронцов М.А., Шмальгаузен В.И. Принципы адаптивной оптики.- М.: Наука, 1985, 336 с.
8. Воронцов М.А., Корябин А.В., Шмальгаузен В.И. Управляемые оптические системы. - М.: Наука, 1988, 270 с.
9. Гроссо Р., Еллин М. Мембранное зеркало как элемент адаптивной оптической системы //Сб. статей "Адаптивная оптика" под ред. Э.А. Витриченко - М.: Мир, 1980, с. 428-447.
10. Ярославский Л.П. Цифровая обработка полей в оптических системах. Цифровая оптика. //сб. "Новые физические принципы оптической обработки информации" под ред. С.А. Ахманова и М.А. Воронцова, - М.: Наука. Гл. ред. физ.-мат. лит., 1990, 400 с.
11. Мирошников М.М., Нестерук В.Ф. Развитие методологии иконики и ее структурной схемы //Труды Государственного оптического института им. С.И. Вавилова, 1982, т. 57, в. 185, с. 7- 13.
12. Сойфер В.А. Компьютерная обработка изображений. Часть 1. Математические модели //Соросовский образовательный журнал, 1996, №2, с.118-124.
13. Сойфер В.А. Компьютерная обработка изображений. Часть 2. Методы и алгоритмы //Соросовский образовательный журнал, 1996, №3, с.110-121.
//*************************************************************
#include <iostream.h>
#include <math.h>
#include <fstream.h>
const int SIZE = 1000; //размер голограммы
const int SIZE2 = 500; //
float hol[SIZE][SIZE]; //заводим выходной массив
ofstream outfile; //для вывода в файл
//***********************************************************
int main ()
{
outfile.open("data.hol"); //открываем файл
int h; //определяем переменные для использования в циклах
int i;
int j;
float x;
float y;
float z;
const int numOfPoints=2; //количество источников точек
float object[numOfPoints][3]; //содержит точки объекта
object[0][0] = float(SIZE2); //define the objects
object[0][1] = float(SIZE2);
object[0][2] = float(1000);
object[0][0] = float(SIZE2+50); //определяем объекты
object[0][1] = float(SIZE2+50);
object[0][2] = float(1000);
//************************************************************
//инициализируем hol
for(i=0;i<SIZE;i++)
{ for(j=0;j<SIZE;j++)
hol[i][j] = 0;
}
//************************************************************
//рассчитываем поля
h=0; //инициализация
while ( h < numOfPoints) //циклимся по всем точкам
{
x= object[h][0];
y= object[h][1];
z= object[h][2];
i = 0; //сброс в ноль
while (i<SIZE) //цикл по рядам
{
cout <<i<<" ";
j=0;
while(j<SIZE) //цикл по колонкам
{
hol[i][j] = hol[i][j] +
cos(sqrt(float(
(x-(i))*(x-(i)) //рассчитываем расстояние
+ (y-(j))*(y-(j))
+ (z*z)))); //берём косинус посчитанного поля
j++; //инкремент колонки
}
i++; //инкремент ряда
}
h++; //переходим к следующей точке
}
//************************************************************
//оцифровка матрицы
i=0; //ряд
while(i<SIZE)
{
j=0; //колонка
while (j<SIZE)
{
if (hol[i][j]>0) //устанавливаем в 1 для всех значений >1
hol[i][j] = int(1);
else // 0 – для всех остальных
hol[i][j] = int(0);
j++; //колонка
}
i++; //ряд
}
//*************************************************************
//запись в файл
i=0;
while(i<SIZE)
{
j=0; //колонки
while (j<SIZE)
{
outfile<<hol[i][j]<<" ";
j++;
}
outfile<<endl; //в конце ряда – перевод строки
i++;
}
return 0;
}
Новости |
Мои настройки |
|
© 2009 Все права защищены.