Программирование мультимедиа-систем. Баканов В.М. - 16 стр.

UptoLike

Составители: 

- 16 -
k
ij
коэффициенты фильтра,
c
ij
интенсивность цвета в точках исходного изображения.
Например, при использовании фильтра с iN=jN=5 обрабатываемая (ij-тая)
точка изображения совпадает c k
33
(при этом точка изображения i-3, j-3 про-
ецируется на k
11
, точка изображения i+3, j+3 проецируется на k
55
и т.д.). Та-
ким образом преобразование для каждой точки исходного изображения
арифметически сводится приблизительно к N
2
(N – размер матрицы фильтра)
операций целочисленного умножения и сложения; при значительном разре-
шении изображения необходимо использовать ассемблер и функции MMX
и/или SSE [3].
При реализации подобных операций с использованием языков высокого
уровня значительную часть времени отнимает считывание значений интен-
сивности цвета исходного изображения в c
ij
(i=1
÷
iN, j=1 ÷ jN) и запись рас-
считанного color_ij в образ модифицированного изображения; при этом целе-
сообразно работать не с (визуализирующим изображение) объектом Image, а
с внеэкранным контейнером (для визуального контроля изменения изобра-
жения полезно регулярно копировать порции обработанного изображения в
Image). В предлагаемом ПО (файл Paint.exe) изображение загружается в Im-
age и копируется во внеэкранный образ fltImage, оттуда же
копируются эле-
менты матрицы c
ij
, после описанного преобразования значение интенсивно-
сти цвета color_ij записывается непосредственно в Image (в дисплейное окно)
- см. процедуру ApplyFilter в модуле Main.cpp (проект Paint.bpr).
Рисунок 2.1 Вид окна определения параметров фильтра в программе
Paint.exe
     kij – коэффициенты фильтра,
     cij – интенсивность цвета в точках исходного изображения.

   Например, при использовании фильтра с iN=jN=5 обрабатываемая (ij-тая)
точка изображения совпадает c k33 (при этом точка изображения i-3, j-3 про-
ецируется на k11, точка изображения i+3, j+3 проецируется на k55 и т.д.). Та-
ким образом преобразование для каждой точки исходного изображения
                                             2
арифметически сводится приблизительно к N (N – размер матрицы фильтра)
операций целочисленного умножения и сложения; при значительном разре-
шении изображения необходимо использовать ассемблер и функции MMX
и/или SSE [3].
   При реализации подобных операций с использованием языков высокого
уровня значительную часть времени отнимает считывание значений интен-
сивности цвета исходного изображения в cij (i=1 ÷ iN, j=1 ÷ jN) и запись рас-
считанного color_ij в образ модифицированного изображения; при этом целе-
сообразно работать не с (визуализирующим изображение) объектом Image, а
с внеэкранным контейнером (для визуального контроля изменения изобра-
жения полезно регулярно копировать порции обработанного изображения в
Image). В предлагаемом ПО (файл Paint.exe) изображение загружается в Im-
age и копируется во внеэкранный образ fltImage, оттуда же копируются эле-
менты матрицы cij, после описанного преобразования значение интенсивно-
сти цвета color_ij записывается непосредственно в Image (в дисплейное окно)
- см. процедуру ApplyFilter в модуле Main.cpp (проект Paint.bpr).




Рисунок 2.1 — Вид окна определения параметров фильтра в программе
              Paint.exe


                                   - 16 -