- •1.Лр №1. Представление изображений в системах технического зрения
- •1.1.Цель работы
- •1.2.Основные теоретические положения
- •1.3.Задание на работу
- •3.2.Основные теоретические положения
- •4.2.Основные теоретические положения
- •3.3.Порядок выполнения работы
- •3.4.Контрольные вопросы
- •4.Лр №4. Исследование простейших линейных и нелинейных фильтров в задачах обработки сенсорных сигналов
- •4.1.Цель и задачи работы
- •4.3.Порядок выполнения работы
- •5.3.Порядок выполнения работы
- •5.4.Контрольные вопросы
- •Библиографический список
3.3.Порядок выполнения работы
На основе программы, созданной в лабораторной работе №1, разработать программу, осуществляющую гистограммное выравнивание загруженного из файла изображения.
Предусмотреть возможность одновременного отображения исходного изображения и изображения с выровненной гистограммой, гистограммы исходного и преобразованного изображений, а также функции преобразования T, построенной для заданного изображения.
3.4.Контрольные вопросы
1. Понятие гистограммы уровней яркости изображения.
2. Формирование гистограмм по изображению.
3. Визуальные проявления неравномерных гистограмм на изображениях.
5. Назначение методов выравнивания гистограмм.
6. Содержание методов выравнивания гистограмм.
4.Лр №4. Исследование простейших линейных и нелинейных фильтров в задачах обработки сенсорных сигналов
4.1.Цель и задачи работы
Закрепить на практике методы двумерной фильтрации изображений. Исследовать влияние простейших линейных и нелинейных фильтров на изображения, искажённые шумами различных типов. Разработать программу, реализующую усредняющую линейную и медианную фильтрацию заданного изображения.
Требования к техническим и программным средствам: персональный компьютер PC/AT; операционная система MS Windows; интегрированная среда разработки ABC-Pascal.
4.2.Основные теоретические положения
Линейная фильтрация цифровых моделей изображений. Общей формой локальных линейных фильтров является:
где
определяют размеры апертуры фильтра
по горизонтали и вертикали – апертура
имеет размер
;
– весовые коэффициенты фильтра.
В качестве примера рассмотрим простейший усредняющий линейный фильтр с апертурой 33 пикселя. В таком фильтре все весовые коэффициенты равны 1/9, при этом выход фильтра рассчитывается просто как среднее арифметическое от пикселей, входящих в ближайшее окружение фильтруемого отсчета. Пример программной реализации имеет вид:
{ ***************************** }
{ ЛИНЕЙНАЯ УСРЕДНЯЮЩАЯ ФИЛЬТРАЦИЯ 3x3 }
{ ***************************** }
for y:=1 to LEN-2 do
for x:=1 to LEN-2 do
im2[y,x] := (im1[y-1,x-1]+im1[y-1,x+0]+im1[y-1,x+1]+
im1[y+0,x-1]+im1[y+0,x+0]+im1[y+0,x+1]+
im1[y+1,x-1]+im1[y+1,x+0]+im1[y+1,x+1]) div 9;
{Копирование граничных строк/столбцов}
for i:=0 to LEN-1 do
begin
im2[i,0] := im1[i,0];
im2[i,LEN-1] := im1[i,LEN-1];
im2[0,i] := im1[0,i];
im2[LEN-1,i] := im1[LEN-1,i];
end;
Нелинейная фильтрация. Медианный фильтр. В качестве примера нелинейных фильтров рассмотрим медианный фильтр. Выходом такого фильтра является медиана множества пикселей, ограниченных апертурой фильтра. Другими словами, выходной отсчет формируется следующим образом:
1) апертура фильтра построчно движется по изображению; для каждого ее положения рассматривается множество пикселей, оказывающихся внутри окна фильтра;
2) это множество сортируется по возрастанию (убыванию) яркости;
3) средний по порядку элемент отсортированного множества рассматривается как выход фильтра.
В качестве возможного примера программной реализации можно привести:
var
med : array [0..8] of integer;
...
{ ***************************** }
{ МЕДИАННАЯ ФИЛЬТРАЦИЯ 3x3 }
{ ***************************** }
for y:=1 to LEN-2 do
for x:=1 to LEN-2 do
begin
med[0] := im1[y-1,x-1]; med[1] := im1[y-1,x+0];
med[2] := im1[y-1,x+1]; med[3] := im1[y+0,x-1];
med[4] := im1[y+0,x+0]; med[5] := im1[y+0,x+1];
med[6] := im1[y+1,x-1]; med[7] := im1[y+1,x+0];
med[8] := im1[y+1,x+1];
{Сортировка массива}
for i:=0 to 5 do
for j:=i+1 to 8 do
if med[i]>med[j] then
begin
color := med[i]; med[i] := med[j]; med[j] := color;
end;
im2[y,x] := med[5]; {Средний элемент упорядоченного массива}
end;
{Копирование граничных строк/столбцов}
for i:=0 to LEN-1 do
begin
im2[i,0] := im1[i,0]; im2[i,LEN-1] := im1[i,LEN-1];
im2[0,i] := im1[0,i]; im2[LEN-1,i] := im1[LEN-1,i];
end;
