Компьютерная обработка изображений

Автор работы: Пользователь скрыл имя, 24 Декабря 2012 в 22:09, контрольная работа

Описание работы

В данном задании рассматриваются одноместная и двухместная бинарная операция ИЛИ с изображением. Ее суть в том, чтобы увеличить яркость участков изображения, если она ниже константы.
В цветовой модели RGB для хранения значения интенсивности каждого цветового компонента выделяется один байт, т.е. интенсивность может принимать значения в диапазоне от 0(минимальная интенсивность) до 255 (28-1) (максимальная интенсивность). Цвет пикселя описывается структурой размером 3 (или 4) байта.

Содержание работы

1. Задание №1.Написать программы, реализующие логические операции
с изображением:………………………………………………………………….3
1.1.Одноместная операция (в преобразование участвует изображение и некоторое константное значение) - операция ИЛИ с изображением.
1.2.Двухместная операция (в преобразование участвуют два изображения) - операция ИЛИ с изображением (выделение на изображении областей, которые имеют белый цвет).
2. Задание №2.Написать программы, реализующие арифметические операции с изображением:……………………………………………………….7
2.1.Одноместная (в преобразовании участвует изображение и некоторое константное значение) операция – (вычитание) с изображением.
2.2.Двухместная (в преобразовании участвуют два изображения) операция – (вычитание) с изображением (выделение на изображении областей, которые имеют белый цвет).
3. Задание №3.Написать программы, реализующие логические операции с изображением:……………………………………...……………………………11
3.1.Увеличение и уменьшение изображения с использованием метода определения неизвестных значений по ближайшему соседнему пикселю.
3.2.Увеличение и уменьшение изображения с использованием метода определения неизвестных значений с использованием кубической интерполяции.
4. Задание №4.Написать программу, реализующую масочную фильтрацию на основе заданных масок (двухмерных массивов):…………………………..18
4.1. Горизонтальный градиентный фильтр Превитта:
1 1 1
0 0 0
-1 -1 -1
4.2. Вертикальный градиентный фильтр Превитта:
-1 0 1
-1 0 1
-1 0 1
4.3. Горизонтальный градиентный фильтр Собеля:
1 2 1
0 0 0
-1 -2 -1
4.4. Вертикальный градиентный фильтр Собеля:
-1 0 1
-2 0 2
-1 0 1
5. Delphi 7………………………………………………………………………..25

Файлы: 1 файл

Kursovaya_rabota.doc

— 7.84 Мб (Скачать файл)

  областей, которые  имеют одинаковый цвет)}

 xb2:=xb2+(n+4)*map; yb:=30;

  for i:=1 to n do

    for j:=1 to n do

      for k1:=1 to map do

        for k2:=1 to map do

          Canvas.Pixels[xb2+(j-1)*map+k2-1,yb+(i-1)*map+k1-1]:=MyPixel((pic1[i,j]

          and pic2[i,j]));;

 

 

 

 

 

 

 



 

 

 

 

 

 

 

 

{Двухместная операция  ИСКЛЮЧАЮЩЕЕ ИЛИ с изображением(выделение  на изображении

 областей,

 цвет которых не  совпадает)}

 xb2:=xb2+(n+4)*map; yb:=30;

  for i:=1 to n do

    for j:=1 to n do

      for k1:=1 to map do

        for k2:=1 to map do

          Canvas.Pixels[xb2+(j-1)*map+k2-1,yb+(i-1)*map+k1-1]:=MyPixel(pic1[i,j]

           xor pic2[i,j]);

{           MyPixel(NotPixel(pic1[i,j]));}

{          (NotPixel(pic1[i,j])*pic2[i,j]+pic1[i,j]*NotPixel(pic2[i,j]));}

 

 


 

 

 

 

 

 

 

 

 

 

Задание №2.

{Одноместная операция+ сложение(ИЛИ) с изображением(повышение  яркости изображения)}

 xb2:=xb2+(n+4)*map; yb2:=yb+(n+4)*map;

  for i:=1 to n do begin

    for j:=1 to n do begin

      for k1:=1 to map do

        for k2:=1 to map do

          Canvas.Pixels[xb2+(j-1)*map+k2-1,yb2+(i-1)*map+k1-1]:=PixelColor(pic3[i,j]+127);

    end;

   end;


 

 


 

 

 

 

 

 

 

 

 

 

 

 

{Двухместная операция  ИЛИ с изображением(выделение  на изображении

  областей, которые имеют белый цвет)}

 xb2:=xb2+(n+4)*map; yb:=30;

  for i:=1 to n do

    for j:=1 to n do

      for k1:=1 to map do

        for k2:=1 to map do

         Canvas.Pixels[xb2+(j-1)*map+k2-1,yb+(i-1)*map+k1-1]:=MyPixel(pic1[i,j]

         or pic2[i,j]);

 



 

 

 

 

 

 

 

Задание №3.

Увеличение изображения  с использованием метода определения  неизвестных

значений по ближайшему СОСЕДНЕМУ ПИКСЕЛУ, увеличениеизображения в scale раз}

 scale:=3;

xb2:=xb; yb2:=yb+2*(n+4)*map;

  for i:=1 to n do

    for j:=1 to n do

     for k1:=1 to map do

        for k2:=1 to map do begin

          pic[i,j]:=pic1[i,(j-1) div scale+1];

          Canvas.Pixels[xb2+(j-1)*map+k2-1,yb2+(i-1)*map+k1-1]:=MyPixel(pic[i,j]);


        end;

 


 

 

 

 

 

 

 

 

 

 

{Увеличение изображения  с использованием метода определения

неизвестных значений с  использованием ЛИНЕЙНОЙ ИНТЕРПОЛЯЦИИ((PIX 1+ PIX 2)/2)

j=1...n; если(j=1, то (P1+P2)/2); если(j=n, то(Pn-1+Pn)/2);

 если 1<j<n, то (j=n(Pj-1+Pj+1)/2)}

 xb2:=xb2+(n+4)*map; yb2:=yb+2*(n+4)*map;

  for i:=1 to n do

    for j:=1 to n do

      for k1:=1 to map do

        for k2:=1 to map do begin

          if (j-1) mod (n-1) = 0 then pic[i,j]:=(pic1[i,j]+pic1[i,j+1-2*(j div n)]) div 2

            else pic[i,j]:=(pic1[i,j-1]+pic1[i,j+1]) div 2;

          Canvas.Pixels[xb2+(j-1)*map+k2-1,yb2+(i-1)*map+k1-1]:=MyPixel(pic[i,j]);

        end;

 

 

{ scale:=2;

  for i:=1 to n do

    for j:=1 to n do

      for k1:=1 to map do

        for k2:=1 to map do

         if Canvas.Pixels[xb+(j-1)*map+k2-1,yb+(i-1)*map+k1-1]=Canvas.Pixels[xb1+(j-1)*map+k2-1,yb+(i-1)*map+k1-1] then

            Canvas.Pixels[xb2+(j-1)*map+k2-1,yb2+(i-1)*map+k1-1]:=clblack

          else

            Canvas.Pixels[xb2+(j-1)*map+k2-1,yb2+(i-1)*map+k1-1]:=clWhite;}

 

end;


end.

 

 


 

 

 

 

 

 

 

 

 

 

 




Информация о работе Компьютерная обработка изображений