Индексированные изображения

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО КУЛЬТУРЕ И КИНЕМАТОГРАФИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

КИНО И ТЕЛЕВИДЕНИЯ»


ЛАБОРАТОРНАЯ РАБОТА № 2

«Обработка цветных изображений»

выполнил:

Судаков Владимир

Студент 112 группы

проверила:

Буль М.П.

Санкт-Петербург

Цель работы:

· Изучить особенности представления цветных изображений в системеMATLAB.

· Изучить возможности цифровой обработки цветных изображений средствами пакета IPT.

Теоретические сведения:

В пакете IPT цветные изображения представимы в двух видах: в виде индексированных изображений или в виде RGB (Red, Green, Blue) изображений.

RGB изображения

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

Индексированные изображения

Индексированное изображение имеет две компоненты: числовую матрицу данных X и матрицу цветовой карты map. Матрица map представляет собой массив размером класса double, в котором записаны вещественные числа с плавающей запятой из интервала [0, 1]. Длина m цветовой карты равна числу различных цветов на данном изображении. Каждая строка матрицы map обозначает красную, зеленую и синюю компоненту одного цвета. Индексированное изображение использует «прямое отображение» величин яркости (насыщенности, цветового тона) пикселов в значения цветовой карты. Цвет каждого пиксела определяется с помощью соответствующего числа, стоящего в матрице X, которое используется в виде указателя на map.

«Большинство не очень опытных разработчиков представляют изображение в виде трёх цветовых каналов RGB и пытаются применить процедуру эквализации гистограммы к каждому цветовому в отдельности. В некоторых редких случаях это позволяет добиться успеха, но в большинстве случаев результат так себе (цвета получаются неестественными и холодными). Это связано с тем, что модель RGB неточно отображает цветовосприятие человека.
Вспомним о другом цветовом пространстве – HSV. Эта цветовая модель (и другие родственные ей) очень широко используются иллюстраторами и дизайнерам так как позволяют оперировать более привычными для человека понятиями цветового тона, насыщенности и интенсивности.»
Задание 1. Формирование граней цветового куба RGB

clear

%создание единичной матрицы

r=ones(256,256,256);

%создание матрицы, опред компоненту R=0

for i=0:255

r(i+1,:,:)=(255-i)*ones(256,256);

end

%создание единичной матрицы

g=ones(256,256,256);

%создание матрицы, опред компоненту G=0

for i=0:255

g(:,i+1,:)=(255-i)*ones(256,256);

end

%создание единичной матрицы

b=ones(256,256,256);

%создание матрицы, опред компоненту B=0

for i=0:255

b(:,:,i+1)=(255-i)*ones(256,256);

end

%формир rgb изобр грани цветного куба, проход через начало коорд и парал плоскости gb(r=0)

RGB=ones(256,256,3);

RGB(:,:,1)=r(256,:,:);

RGB(:,:,2)=g(256,:,:);

RGB(:,:,3)=b(256,:,:);

%преобр в формат дабл

RGBr=double(RGB)./255;

subplot(1,3,1);

imshow(RGBr);

title('R=0');

%формир rgb изобр грани цветного куба, проход через начало коорд и парал плоскости rb(g=0)

RGB=ones(256,256,3);

RGB(:,:,1)=r(:,256,:);

RGB(:,:,2)=g(:,256,:);

RGB(:,:,3)=b(:,256,:);

%преобр в формат дабл

RGBg=double(RGB)./255;

subplot(1,3,2);

imshow(RGBg);

title('G=0');

%формир rgb изобр грани цветного куба, проход через начало коорд и парал плоскости rg(b=0)

RGB=ones(256,256,3);

RGB(:,:,1)=r(:,:,256);

RGB(:,:,2)=g(:,:,256);

RGB(:,:,3)=b(:,:,256);

%преобр в формат дабл

RGBb=double(RGB)./255;

subplot(1,3,3);

imshow(RGBb);

title('B=0');


Задание 2. Преобразование типов изображений

clear;

file=imread('iris.tif');

figure

subplot(1,3,1);

imshow(file);

title('Изображение');

[X,map]=rgb2ind(file,8,'nodither')

subplot(1,3,2);

imshow(X,map);

title('без диффузного псевдосмещением');

[Y,map]=rgb2ind(file,8,'dither')

subplot(1,3,3);

imshow(Y,map);

title('с диффузным псевдосмещением');

map =

0.2510 0.2471 0.1725

0.4549 0.3255 0.6941

0.5765 0.6314 0.5961

0.4392 0.4667 0.3255

0.6471 0.6078 0.9216

0.5294 0.4000 0.8510

0.3176 0.3686 0.2039

0.8980 0.7961 0.3490

clear;

file=imread('iris.tif');

figure

subplot(1,3,1);

imshow(file);

title('Изображение');

[X,map]=rgb2ind(file,0.9,'nodither');

subplot(1,3,2);

imshow(X,map);

title('без диффузного псевдосмещением');

[Y,map]=rgb2ind(file,0.9,'dither');

subplot(1,3,3);

imshow(Y,map);

title('с диффузным псевдосмещением');

k=(floor(1/0.9)+1)^3;

k=8

tol=0.7

k=8

tol=0.4

k= 27

tol=0.2

k=64

tol=0.1

k=1331

Вывод:

Задание 3. Гистограммная эквализация. Улучшение монохромной и цветной контрастности/

clear

file=imread('naturmort.tif');

subplot(5,2,1);

imshow(file);

title('Исходное изображение');

HSV=rgb2hsv(file);

%HSV = cat(3, H, S, V);

H = HSV(:,:, 1);

S = HSV(:,:, 2);

V = HSV(:,:, 3);

subplot(5,2,3); imshow(V); title('V компонента');

subplot(5,2,4); imhist(V); title('гистограмма V компоненты')

subplot(5,2,6);

histeq(V,64);

Id=histeq(V,64);

imhist(Id); title('выровненная гистограмма V компоненты')

subplot(5,2,5);

imshow(Id); title('обработанная V компонента');

subplot(1,2,1);

imshow(file);

title('Исходное изображение');

hsv=cat(3, H, S,Id);

subplot(1,2,2);

rgb=hsv2rgb(hsv);

imshow(rgb); title('из HSV в RGB')

HSV=rgb2hsv(file);

%HSV = cat(3, H, S, V);

H = HSV(:,:, 1);

S = HSV(:,:, 2);

V = HSV(:,:, 3);

subplot(2,2,1); imshow(V); title('V компонента');

subplot(2,2,2); imhist(V); title('гистограмма V компоненты')

subplot(2,2,4);

Ic=imadjust(V,[0 200]/255,[0 1], 0.7);

imhist(Ic); title('выровненная гистограмма V компоненты')

subplot(2,2,3);

imshow(Ic); title('обработанная V компонента');

clear

file=imread('naturmort.tif');

subplot(1,2,1);

imshow(file);

title('Исходное изображение');

HSV=rgb2hsv(file);

%HSV = cat(3, H, S, V);

H = HSV(:,:, 1);

S = HSV(:,:, 2);

V = HSV(:,:, 3);

Ic=imadjust(V,[0 200]/255,[0 1], 0.7);

hsv=cat(3, H, S,Ic);

subplot(1,2,2);

rgb=hsv2rgb(hsv);

imshow(rgb); title('из HSV в RGB')

HSV=rgb2hsv(file);

%HSV = cat(3, H, S, V);

H = HSV(:,:, 1);

S = HSV(:,:, 2);

V = HSV(:,:, 3);

subplot(2,2,1); imshow(S); title('S компонента');

subplot(2,2,2); imhist(S); title('гистограмма S компоненты')

subplot(2,2,4);

Ic=imadjust(S,[0 200]/255,[0 1], 0.7);

imhist(Ic); title('выровненная гистограмма S компоненты')

subplot(2,2,3);

imshow(Ic); title('обработанная S компонента');

subplot(1,2,1);

imshow(file);

title('Исходное изображение');

hsv=cat(3, H, S,Id);

subplot(1,2,2);

rgb=hsv2rgb(hsv);

imshow(rgb); title('из HSV в RGB')

clear

file=imread('naturmort.tif');

subplot(1,2,1);

imshow(file);

title('Исходное изображение');

HSV=rgb2hsv(file);

%HSV = cat(3, H, S, V);

H = HSV(:,:, 1);

S = HSV(:,:, 2);

V = HSV(:,:, 3);

Ic=imadjust(V,[0 200]/255,[0 1], 0.7);

hsv=cat(3, H, S,Ic);

subplot(1,2,2);

rgb=hsv2rgb(hsv);

imshow(rgb); title('из HSV в RGB')

clear

file=imread('naturmort.tif');

subplot(1,2,1);

imshow(file);

title('Исходное изображение');

HSV=rgb2hsv(file);

%HSV = cat(3, H, S, V);

H = HSV(:,:, 1);

S = HSV(:,:, 2);

V = HSV(:,:, 3);

Ic=imadjust(S,[0 200]/255,[0 1], 0.7);

hsv=cat(3, H, Ic,V);

subplot(1,2,2);

rgb=hsv2rgb(hsv);

imshow(rgb); title('из HSV в RGB')


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: