Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект_лекций.doc
Скачиваний:
18
Добавлен:
26.04.2019
Размер:
1.11 Mб
Скачать

11.5. Ввод и обработка информации в форме изображений

Для ввода внешней информации «класса изображение» в оперативную память ЭВМ используются периферийные устройства типа: сканер, цифровые фото/кинокамеры. Основная задача этих устройств – преобразовать исходное изображение к растровому типу, т.е. создать цифровую модель изображения в виде прямоугольной таблицы цветовых точек-растров, описываемых числовыми кодами. Оцифрованная информация обычно размещается в отдельном файле или непосредственно в переменных-массивах (array) оперативной памяти.

Интересно: разрешимость сканеров обычно существенно превосходит разрешимость типичного экрана монитора: количество и цветовое разнообразие выделяемых сканером цветовых точек на один квадратный сантиметр изображения в десятки раз превосходит количество пикселей, находящихся на такой же площади экрана монитора.

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

«Автоматизированная» (программная) обработка изображений заключается в выделении из картинки «изобразительных образов», т.е. отдельных деталей, обладающих собственной семантикой (смыслом).

На первом этапе проводится группировка соседствующих растров в ломанные линии, дуги, геометрические фигуры, т.е. типичных элементов «чертежного изображения». Обработанное соответствующими программами исходное «растровое изображение» превращается в - «векторное изображение», т.е. миллионы точек заменяются сотнями геометрических фигур.

Далее, среди выделенных кривых и дуг выделяются - отдельные буквы и символы, т.е. понятные нам элементы письменного языка.

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

Раздел прикладной математики (информатики), занимающийся разработкой соответствующих алгоритмов, называется «Теорией распознавания образов».

§12. Информационные объекты класса – подпрограммы

Опр. Конструктивизм саморазвития языка - процесс обогащения и пополнения словарного запаса языка путем введения уникальных имен (терминов), для упорядоченных по синтаксису или семантике последовательностей известных (уже существующих в языке) слов.

В языке Pascal:

  • строго упорядоченная последовательность однотипных объектов обработки образует новый объект обработки класса ARRAY,

  • строго упорядоченная последовательность символов (CHAR) порождает новый объект обработки класса STRING,

  • упорядоченная последовательность разнотипных объектов обработки образует новый объект обработки класса RECORD.

Напомним: информационные объекты обработки в языках программирования выполняют роль существительных в естественных языках, а операции обработки этих объектов – аналоги глаголов в естественных языках.

В языке Pascal:

  • последовательность из нескольких операций обработки, которые проводятся над некими объектами обработки, образует новую операцию обработки классов PROCEDURE или FUNCTION.

Пояснение: Для поиска корней квадратного уравнения необходимо выполнить известную последовательность арифметических и логических операций. Последовательность этих операций можно только один раз объяснить исполнителю и обозвать последовательность этих операций уникальным именем - глаголом «решить КУ». В последующем, если возникает необходимость заставить исполнителя решить какое-то квадратное уравнение, достаточно скомандовать ему - «решить КУ» и дать конкретные значения коэффициентов входящих в уравнение.

Опр. Подпрограмма – последовательность операторов наделенная собственным именем.

Использование собственных подпрограмм требует от программиста выполнения двух, разнесенных в пространстве и времени, действий:

  • описания подпрограммы (введения в язык Pascal нового понятия), которое выполняется в блоке операторов описаний,

  • собственно самого вызова подпрограммы (для выполнения конкретных вычислений), которое осуществляется в блоке исполнимых операторов.