PDA-0573 (664740), страница 3
Текст из файла (страница 3)
Очень часто формулировка предмета компьютерной оптики как научного направления сужается и в нее вкладывается более конкретный смысл. При этом считается, что компьютерная оптика - это получение на основе применения ЭВМ оптических элементов, осуществляющих требуемое преобразование волновых полей.
.
-
Литература.
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
#include
#include
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 { for(j=0;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 { cout < j=0; while(j { 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 { j=0; //колонка while (j { 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 { j=0; //колонки while (j { outfile< j++; } outfile< i++; } return 0; } 16