Скачиваний:
11
Добавлен:
10.05.2015
Размер:
253.44 Кб
Скачать

3.6.2.2.3. Выходные данные.

ArrayBrightness [1..2, 1..LenthX, 1..LenthY] - массив сигналов рецепторов сетчатки, отображающий изображения предыдущего и текущего кадров (в зависимости от состояния ключа KeyArrayBrightness). «Массив яркостей».

MaxBrightness - если PrznMaxBrightness = true, то в данной переменной определяется максимальная яркость текущего кадра, при условии, что она выше максимальной яркости предыдущего кадра.

3.5.2.3. Описание логики.

Для формирования массива чисел (сигналов), отображающих изображение очередного кадра, в процедуре организовано обращение ко всем рецепторам сетчатки в 2-ух циклах: по I - îò 1 äî LenthX, è ïî J - от 1 до LenthY. При очередном проходе цикла в самом начале сигналу IntegralBrightness присваивается нулевое значение. Кроме того нулевые значения присваиваются так же номерам однотипных функций яркости q1, q2, ..., q9.

После этого для определения значений яркости в данной точке поля наблюдения всего множества используемых для моделирования изображения функций яркости, организован цикл по K от 1 до QuantFunction. В этом цикле перебираются все элементы массива ArrayFunction, задающие тип и уровень взаимного расположения функций яркости по приоритету. При этом больший порядковый номер элемента массива ArrayFunction (определяется параметром цикла K) задает больший приоритет данной функции относительно других функций, имеющих меньшие порядковые номера. Тип функции определяется значением элемента данного массива, который может находиться в пределах от 1 до 9 по количеству используемых функций яркости.

Для каждой функции яркости определяется значение FunctionBrightness исходя из координат точки по I è J. Для любого типа функции это значение определяется в три этапа:

  1. увеличение на единицу номера использования данной функции яркости (q1, q2, ..., q9) в зависимости от значения ArrayFunction [K], что позволяет использовать в следующих проходах цикла по K однотипные функции с различными параметрами, путем считывания их из очередной строки массивов ArrayDataF1, ArrayDataF2, ..., ArrayDataF9;

  2. на втором шаге, путем обращения к процедуре «Movement», которая организует сложное относительное движение этой функции яркости и поля наблюдения. В зависимости от конкретных параметров данной функции яркости, интервала времени между соседними кадрами и номера моделируемого кадра вычисляются значения ArgumentX и ArgumentY, представляющие собой координаты I è J в неподвижной системе отсчета данной функции яркости;

  3. на третьем этапе в зависимости от параметров конкретной функции яркости и значений ArgumentX и ArgumentY непосредственно вычисляется значение яркости конкретной функции в данной точке поля наблюдения FunctionBrightness путем обращения к соответствующей подпрограмме - функции яркости («Function1», «Function2», ..., «Function9»).

Формирование интегрального значения яркости IntegralBrightness производится в зависимости от признаков PriznSumBrightness и PriznPrioritet. При любых комбинациях этих признаков возможны три способа формирования интегрального значения яркости IntegralBrightness:

  1. при PriznSumBrightness = true (при этом PriznPrioritet может иметь любое значение) значение IntegralBrightness вычисляется как сумма значений участвующих в моделировании изображения функций яркости в данной точке сетчатки;

  2. при PriznPrioritet = true (при этом PriznSumBrightness должен иметь значение false, иначе будет работать первый вариант формирования интегрального значения яркости) значение IntegralBrightness вычисляется по приоритету функции, то есть IntegralBrightness присваивается значение той функции яркости, которая имеет больший порядковый номер в массиве ArrayFunction (при условии, что значение яркости конкретной функции в данной точке сетчатки больше 0);

  3. если оба признака имеют значение false, то IntegralBrightness принимает значение той функции яркости, значение которой на данном рецепторе поля наблюдения наибольшее.

Далее, если PriznPom = true, вычисляется случайное число, имитирующее помеху, и сигнал яркости рецептора в этом случае определяется как сумма IntegralBrightness и значения помехи. При этом псевдослучайные числа могут формироваться как по равномерному закону распределения (использованием функции Random), так и по нормальному закону распределения с заданными параметрами математического ожидания и среднеквадратического отклонения амплитуды помех (функция FunctionRandom).

После определения значения сигнала данного рецептора в зависимости от значения ключа KeyArrayBrightness, I è J оно записывается в соответствующую ячейку массива ArrayBrightness.

Очередной проход циклов по I è J заканчивается (если PriznMaxBrightness = true, то есть если явно не задан максимальный постоянный уровень яркости) сравнением текущего максимального уровня и значения сигнала данного рецептора сетчатки. Если сигнал больше, то он принимается в качестве максимального допустимого уровня сигнала и присваивается переменной MaxBrightness.

Соседние файлы в папке doc_1