Buscar

Proc-Imagens

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ 
CAMPUS CURITIBA 
ESCOLA POLITÉCNICA 
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO 
 
 
 
 
EDO WALFRIDO DE ALMEIDA 
 
 
 
 
 
 
PROCESSAMENTO DIGITAL DE IMAGENS 
MODELOS DE COR 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CURITIBA 
2019
 
 
2 
 
 
 
EDO WALFRIDO DE ALMEIDA 
 
 
 
 
 
 
 
PROCESSAMENTO DIGITAL DE IMAGENS 
MODELOS DE COR 
 
 
Trabalho apresentado à disciplina de 
Processamento Digital de Imagens do 
Curso de Graduação em Engenharia de 
Controle e Automação da Pontifícia 
Universidade Católica do Paraná como 
forma parcial de avaliação referente à 1a 
Parcial. 
 
Orientador: Prof. Dr. Marcelo Rudek. 
 
 
 
 
 
 
 
 
 
 
 
CURITIBA 
2019 
 
 
3 
 
SUMÁRIO 
 
1 INTRODUÇÃO .................................................................................................... 5 
2 MODELO DE COR RGB ..................................................................................... 6 
3 SISTEMA DE COR XYZ ...................................................................................... 8 
3.1 FÓRMULAS PARA CONVERSÃO ENTRE MODELO RGB – XYZ .................... 11 
3.1.1 RGB PARA XYZ ............................................................................... 11 
3.1.2 XYZ PARA RGB ............................................................................... 11 
3.2 CONVERSÃO NO MATLAB .............................................................................. 11 
3.3 EXEMPLO DE CONVERSÃO RGB PARA XYZ ................................................. 11 
3.3.1 Modelo RGB para XYZ .................................................................... 11 
3.3.2 Decomposição das componentes X, Y e Z .................................... 12 
4 MODELO CMY – CMYK .................................................................................... 13 
4.1 FÓRMULAS PARA CONVERSÃO ENTRE MODELO RGB – XYZ .................... 13 
4.1.1 RGB PARA CMK .............................................................................. 14 
4.1.2 CMY PARA RGB .............................................................................. 14 
4.2 CONVERSÃO CMY PARA CMYK ..................................................................... 14 
4.3 CONVERSÃO NO MATLAB .............................................................................. 15 
4.3.1 Conversão RGB para CMY.............................................................. 15 
4.3.2 Conversão RGB para CMYK / CMYK para RGB ............................ 16 
4.4 EXEMPLO DE CONVERSÃO RGB PARA CMY/CMYK..................................... 17 
4.4.1 Modelo RGB para CMY/CMYK ........................................................ 17 
4.4.2 Decomposição das componentes C, M, Y e K............................... 17 
5 MODELO HSV (HSB) ........................................................................................ 18 
5.1 FÓRMULAS PARA CONVERSÃO ENTRE MODELO RGB – HSV (HSB) ......... 19 
5.1.1 RGB PARA HSV (HSB) .................................................................... 19 
5.1.2 HSV (HSB) PARA RGB .................................................................... 20 
5.2 CONVERSÃO NO MATLAB .............................................................................. 20 
5.3 EXEMPLO DE CONVERSÃO RGB PARA HSV (HSB) ...................................... 21 
5.3.1 Modelo RGB para HSV (HSB) ......................................................... 21 
5.3.2 Decomposição das componentes H, S, V ...................................... 21 
6 MODELO HSI .................................................................................................... 22 
6.1 FÓRMULAS PARA CONVERSÃO ENTRE MODELO RGB – HSI ..................... 23 
 
 
4 
6.1.1 RGB PARA HSI ................................................................................ 23 
6.1.2 HSI PARA RGB ................................................................................ 24 
6.2 CONVERSÃO NO MATLAB .............................................................................. 24 
6.2.1 Conversão RGB para HSI................................................................ 24 
6.2.2 Conversão HSI para RGB................................................................ 25 
6.3 EXEMPLO DE CONVERSÃO RGB PARA HSI .................................................. 26 
6.3.1 Modelo RGB para HSI ..................................................................... 26 
6.3.2 Decomposição das componentes H, S, I ....................................... 26 
6.3.3 Modelo HSI para RGB (usando script MATLAB) ........................... 27 
7 REFERÊNCIAS BIBLIOGRÁFICAS .................................................................. 28 
 
 
 
 
5 
1 INTRODUÇÃO 
 
Um modelo de cores é uma organização específica de cores. Em combinação 
com o perfil de funcionamento de um dispositivo físico, permite representações 
reprodutíveis de cor, em tanto representações analógicas quanto digitais. Segundo 
Gonzalez et al. (2009) um modelo de cores é uma especificação de um sistema de 
coordenadas e um subespaço dentro desse sistema no qual cada cor é representada 
por um único ponto. 
 
Assim, um modelo de cor nada mais é do que um modelo matemático usado 
para descrever cada cor a partir de fórmulas e algoritmos que são orientados ou em 
direção ao hardware (como no caso de monitores e impressoras coloridas) ou em 
direção a aplicações envolvendo a manipulação de cores (como a criação de imagens 
coloridas para uma animação). 
 
Com base nessas informações, esse trabalho de pesquisa tem por objetivos (1) 
apresentar uma descrição teórica sobre os modelos de cor XYZ, CMY/CMYK, HSV 
(HSB) e HSI; (2) demonstrar a transformação (matemática e algoritmo) entre alguns 
desses modelos; e (3) apresentar exemplos de imagens com essas transformações. 
 
 
 
 
 
6 
2 MODELO DE COR RGB 
 
Antes de iniciar a descrição dos modelos citados na introdução desse trabalho 
é preciso relembrar alguns conceitos relacionados ao modelo de cor RGB visto que 
este será o sistema usado como referência nas transformações e amostragens. 
 
Em modelos de cores aditivos, como o RGB, a cor é produzida a partir da luz 
transmitida. Por esse motivo, o RGB é usado em dispositivos como monitores, onde 
as luzes vermelha, azul e verde são misturadas para reproduzir uma ampla variedade 
de cores. Quando as luzes vermelha, azul e verde são combinadas em suas 
intensidades máximas, o olho percebe a cor resultante como branco. Em teoria, as 
cores ainda são vermelho, verde e azul, mas os pixels em um monitor estão muito 
próximos uns dos outros para o olho diferenciar as três cores. Quando o valor de cada 
componente for 0 há ausência de luz e o olho percebe a cor como preto. 
 
 
 
Figura 1: No sistema RGB (aditivo) branco é o resultado da combinação das três 
cores em sua intensidade máxima. 
 
 
No sistema RGB, como na maioria dos modelos de cor, é utilizado um algoritmo 
baseado em operações matemáticas envolvendo vetores e matrizes para a formação 
das imagens coloridas num espaço determinado. Por se tratar de três cores bases 
(vermelho, verde e azul) esses componentes são transformados em três matrizes de 
tamanho M x N (linhas x colunas) que representam cada uma das cores e o algoritmo 
calcula e determina a intensidade da cor a ser apresentada em cada pixel da imagem. 
 
 
 
7 
Imagens no modelo RGB constituem 3 planos diferentes um para cada cor 
primária. Em monitores RGB esses três planos são combinados na tela de fósforo 
para produzir a imagem colorida. 
 
 
Figura 2: Geração da imagem RGB do plano de cor de corte transversal (127, G, B). 
 
 
Como referência para as transformações e decomposições das cores de cada 
sistema será utilizada a seguinte imagem: 
 
 
Figura 3: Imagem em RGB utilizada como referência nesse trabalho. 
 
 
8 
3 SISTEMA DE COR XYZ 
 
O sistema XYZ de cores primárias daCIE (Comissão Internacional de 
Iluminação) é um sistema aditivo que descreve as cores através de 3 cores primárias 
X, Y e Z. Esse sistema foi criado devido à inexistência de um conjunto finito de cores 
primárias que produza todas as cores visíveis possíveis. Segundo Gonzalez et al. 
(2009) as quantidades de vermelho, verde e azul necessárias para formar qualquer 
cor em particular são chamadas de valores de triestímulo e expressas como X, Y e Z, 
respectivamente. As cores desse sistema podem ser especificadas por seus 
coeficientes tricromáticos definidos por: 
 
 
𝑥 = 
𝑋
𝑋 + 𝑌 + 𝑍
 ; 𝑦 = 
𝑌
𝑋 + 𝑌 + 𝑍
 ; 𝑧 = 
𝑍
𝑋 + 𝑌 + 𝑍
 ; com x + y + z = 1. 
 
 
Para qualquer comprimento de onda de luz no espectro visível, os valores de 
triestímulo necessários para produzir a cor correspondente a esse comprimento de 
onda podem ser obtidos diretamente das curvas ou tabelas que foram criadas a partir 
de resultados experimentais. 
 
Outra metodologia utilizada para especificar as cores é o diagrama de 
cromaticidade da CIE que mostra a composição de cores como uma função de x 
(vermelho) e y (verde). Para qualquer valor de x e y, o valor correspondente de z (azul) 
é calculado a partir da equação x + y + z = 1, observando-se que z = 1 – (x + y). O 
ponto marcado em verde na Figura 4, por exemplo, tem aproximadamente 62% de 
verde e 25% de vermelho. A partir da equação acima, sabemos que a composição de 
azul é de aproximadamente 13%. 
 
 
 
9 
 
 
Figura 4: Diagrama de cromaticidade. 
(Imagem original: cortesia da General Electric Co., Lamp Business Division.) 
 
 
As posições das várias cores no espectro são indicadas ao redor da fronteira 
do diagrama de cromaticidade e consideradas cores puras. Qualquer ponto que não 
se posicione na fronteira representa alguma mistura das cores do espectro. O ponto 
de igual energia mostrado na Figura 4 corresponde a frações iguais das três cores 
primárias e representa o padrão da CIE para a luz branca. 
 
Qualquer ponto localizado na fronteira do gráfico de cromaticidade é 
completamente saturado. À medida que um ponto deixa a fronteira e se aproxima do 
ponto de energia igual, mais luz branca é adicionada à cor, tornando-se menos 
saturada. A saturação no ponto de igual energia é zero. 
 
Com base nisso, é possível definir a escala de cores que pode ser obtida a 
partir de três cores quaisquer no diagrama de cromaticidade, simplesmente traçando 
segmentos de retas conectando cada um dos três pontos de cor. O resultado é um 
 
 
10 
triângulo, e qualquer cor na fronteira ou dentro do triângulo pode ser produzida a partir 
de combinações das três cores iniciais. 
 
Um triângulo com vértices em quaisquer três cores fixas não pode delimitar toda 
a região de cores do diagrama. Assim nota-se que nem todas as cores podem ser 
obtidas a partir de apenas três cores primárias fixas. A figura abaixo mostra uma faixa 
típica de cores reproduzida por monitores RGB. A região irregular dentro do triângulo 
representa a gama de cores reproduzidas pelos atuais dispositivos de impressão 
colorida de alta qualidade. 
 
 
 
Figura 5: Gama de cores típica de monitores coloridos (triângulo) e dispositivos de impressão em 
cores (região irregular). 
 
 
 
11 
3.1 FÓRMULAS PARA CONVERSÃO ENTRE MODELO RGB – XYZ 
3.1.1 RGB PARA XYZ 
[
𝑋
𝑌
𝑍
] = 
1
0.17697
 . [
0.49 0.31 0.20
0.17697 0.81240 0.01063
0.0 0.01 0.99
] . [
𝑅
𝐺
𝐵
] 
 
3.1.2 XYZ PARA RGB 
[
𝑅
𝐺
𝐵
] = [
2.36470 −0.51515 0.00520
−0.89665 0.14264 −0.01441
−0.46808 0.08874 1.00921
] . [
𝑋
𝑌
𝑍
] 
 
3.2 CONVERSÃO NO MATLAB 
A conversão entre modelos RGB e XYZ no MATLAB pode ser feita através das 
funções: 
 
• XYZ = rgb2xyz(RGB) : converter do modelo RGB para XYZ; 
• RGB = xyz2rgb(XYZ) : converter do modelo XYZ para RGB. 
 
3.3 EXEMPLO DE CONVERSÃO RGB PARA XYZ 
3.3.1 Modelo RGB para XYZ 
RGB XYZ 
 
 
 
 
12 
3.3.2 Decomposição das componentes X, Y e Z 
Componente X Componente Y 
 
Componente Z 
 
 
 
 
 
 
 
13 
4 MODELO CMY – CMYK 
 
Ao contrário do modelo de cor RGB, o CMYK baseia-se não na adição de luz, 
mas em sua subtração. No modelo RGB, as cores são criadas acrescentando-se luz, 
por isso sua utilização em dispositivos como monitores. Mas no caso de uma página 
impressa ela não emite luz, ao contrário, absorve e reflete luz. 
 
Assim em um sistema aditivo em que o ciano (C), magenta (M) e amarelo (Y) 
são cores secundárias de luz, para um sistema subtrativo, como o CMY/CMYK, 
tornam-se as cores primárias de pigmanetos. Conforme Gonzalez et al. (2009) quando 
uma superfície coberta com pigmento ciano é iluminada com luz branca, nenhuma luz 
vermelha é refletida da superfície. Isto é, o ciano subtrai a luz vermelha da luz branca 
refletida, que é composta de quantidades iguais de luz vermelha, verde e azul. 
 
 
 
Figura 6: Preto é o resultado da combinação das três cores CMY em sua intensidade máxima. 
 
 
A maioria dos dispositivos que depositam pigmentos coloridos sobre o papel, 
como impressoras e copiadoras coloridas, necessitam de dados de entrada em 
CMY/CMYK ou realizam internamente uma conversão de RGB a CMY/CMYK. 
 
4.1 FÓRMULAS PARA CONVERSÃO ENTRE MODELO RGB – XYZ 
Por serem modelos de cor complementares, essa conversão é feita uma 
conversão simples. 
 
 
14 
4.1.1 RGB PARA CMK 
[
𝐶
𝑀
𝑌
] = [
1
1
1
] - [
𝑅
𝐺
𝐵
] 
4.1.2 CMY PARA RGB 
[
𝑅
𝐺
𝐵
] = [
1
1
1
] - [
𝐶
𝑀
𝑌
] 
 
4.2 CONVERSÃO CMY PARA CMYK 
Na teoria, quantidades iguais de pigmentos primários, ciano, magenta e 
amarelo deveriam produzir o preto. Na prática, a combinação dessas cores para a 
impressão produz um preto de aparência turva. Dessa forma, para produzir o 
verdadeiro preto (que é a cor predominante na impressão), uma quarta cor, o preto 
(K) é adicionada, gerando o modelo de cores CMYK. 
 
O cálculo para esse componente durante a conversão dos modelos RGB para 
CMYK é feita usando o seguinte método: 
 
• Preto (K) = valor mínimo entre C, M, Y. 
• Ciano (c)= 
𝐶−𝐾
1−𝐾
 
• Magenta (m) = 
𝑀−𝐾
1−𝐾
 
• Yellow (y) = 
𝑌−𝐾
1−𝐾
 
 
No CMYK ideal, um dos valores C, M ou Y é sempre zero. A normalização é 
feita para determinar qual a proporção relativa de C, M e Y para as cores restantes. 
 
 
 
15 
 
Figura 7: Conversão para o componente K. 
 
 
 
4.3 CONVERSÃO NO MATLAB 
4.3.1 Conversão RGB para CMY 
Para as conversões entre os modelos RGB – CMY e CMY – RGB que são 
componentes complementares pode ser utilizada uma função própria do MATLAB: 
 
• CMY = imcomplement(RGB) : converter RGB em CMY; 
• RGB = imcomplement(CMY) : converter CMY em RGB. 
 
Para conversões entre modelos RGB e CMYK é necessário a criação de um 
script para acrescentar o componente K a matriz de cores. 
 
 
 
 
16 
4.3.2 Conversão RGB para CMYK / CMYK para RGB 
function c = rgb2cmyk(c) 
 
s = size(c); 
n = size(s,2); 
 
m = s(2+(n==3)); 
 
if ~( isnumeric(c) & any( n == [ 2 3 ]) & ... 
 any( m == [ 3 4 ] ) ) 
 error('Entrar com uma matriz RGB ou CMYK.'); 
end 
 
if isempty(c) 
 return 
end 
 
u8 = strcmp(class(c),'uint8'); 
if u8 
 c = double(c)/255; 
end 
 
sub = { ':' ':' }; 
sub = sub(1:(1+(n==3))); 
 
if m == 3 
% RGB --> CMYK 
 
 c = 1 - c; 
 k = min(c,[],n); 
 c = c - k(sub{:},[1 1 1]); 
 c = cat( n , c , k ); 
 
else 
% CMYK --> RGB 
 
 c = 1 - ( c(sub{:},[1 2 3]) + c(sub{:},[4 4 4]) ); 
 
end 
 
if u8 
 c = uint8(round(c*255)); 
end 
 
 
 
 
 
 
 
 
 
17 
4.4 EXEMPLO DE CONVERSÃO RGB PARA CMY/CMYK 
4.4.1 Modelo RGB para CMY/CMYK 
RGB CMY/CMYK 
 
4.4.2 Decomposição das componentes C, M, Y e K 
Componente C Componente M 
 
Componente Y Componente K 
 
 
 
 
18 
5 MODELO HSV (HSB) 
 
Embora os modelos de cores RGB e CMYK sejam essenciais a computação 
gráfica e a impressão, muitos desenhistas e artistas gráficos acham complicado tentarmisturar cores usando valores ou porcentagens de outras cores. O uso de um disco 
de cores ajuda, mas nem o modelo RGB nem o CMYK são muito intuitivos. A mente 
humana não separa as cores em modelos de vermelho/verde/azul ou 
ciano/magenta/amarelo/preto. 
 
Para facilitar essas escolhas, foi criado um terceiro modelo de cores: modelo 
HSB - Hue/Saturation/Brightness (matiz/saturação/brilho). O HSB baseia-se na 
percepção humana das cores e não nos valores RGB do computador ou nas 
porcentagens de CMYK das impressoras. O olho humano vê cores como 
componentes de matiz, saturação e brilho. Esses matizes podem ser imaginados 
como as cores que se vê em um disco de cores. Em termos técnicos, matiz baseia-se 
no comprimento de onda de luz refletida de um objeto ou transmitida por ele. A 
saturação, também chamada de croma, é a quantidade de cinza em uma cor. Quanto 
mais alta a saturação, mais baixo é o conteúdo e mais intensa é a cor. O brilho é uma 
medida de intensidade da luz em uma cor. 
 
Esses três parâmetros são definidos por: 
• Matiz (tonalidade): Corresponde ao tipo de cor, abrangendo todas as 
cores do espectro, desde o vermelho até o violeta. Atinge valores de 0º 
a 360º. 
• Saturação: Quanto menor este valor, com mais tom de cinza aparecerá 
a imagem. Quanto maior o valor, mais pura é a imagem. Atinge valores 
de 0 a 100%. 
• Brilho: Define o brilho da cor. Atinge valores de 0 a 100%. 
 
 
 
19 
 
 
Figura 8: Disco de cor do modelo HSV (HSB). 
 
 
5.1 FÓRMULAS PARA CONVERSÃO ENTRE MODELO RGB – HSV (HSB) 
5.1.1 RGB PARA HSV (HSB) 
Seja uma cor definida por RGB, onde R, G e B estão entre 0 e 1, onde estes 
valores correspondem, respectivamente, ao maior e ao menor valor possível para 
cada. A transformação para os parâmetros (H, S, V) dessa cor pode ser determinada 
pelas fórmulas abaixo. 
 
Seja MAX e MIN os valores máximo e mínimo, respectivamente, dos valores 
(R, G, B): 
 
 
 
 
 
http://www.ufrgs.br/engcart/PDASR/formcor.html#2
 
 
20 
5.1.2 HSV (HSB) PARA RGB 
Seja uma cor definida por HSV, onde H, varia de 0º a 360º, informando o ângulo 
em graus, no círculo onde este parâmetro está definido e com S e V variando de 0 a 
1. A transformação para os parâmetros (R, G, B) desta cor podem ser calculados 
conforme a formulação abaixo: 
 
Primeiramente, se S = 0, o resultado será cinza. Para esse caso, os valores de 
R, G e B são iguais a V e, o valor de H é irrelevante. Para S diferente de zero, as 
equações abaixo são aplicáveis: 
 
 
 
 
 
 
 
 
Essas equações fornecem R, G e B variando de 0 a 1. 
 
5.2 CONVERSÃO NO MATLAB 
A conversão entre modelos RGB e HSV (HSV) no MATLAB pode ser feita 
através das funções: 
 
• HSV = rgb2hsv(RGB) : converter do modelo RGB para HSV (HSV); 
• RGB = hsv2rgb(HSV) : converter do modelo HSV (HSV) para RGB. 
 
 
21 
5.3 EXEMPLO DE CONVERSÃO RGB PARA HSV (HSB) 
5.3.1 Modelo RGB para HSV (HSB) 
RGB HSV (HSB) 
 
5.3.2 Decomposição das componentes H, S, V 
Componente H Componente S 
 
Componente V 
 
 
 
 
 
22 
6 MODELO HSI 
 
Como o modelo de HSV, o HSI também se baseia na percepção do olho 
humano em termos de matiz, saturação e brilho. Matiz é um atributo que descreve 
uma cor pura (amarelo, laranja ou vermelho puros), ao passo que a saturação dá uma 
medida do grau de diluição de uma cor pura por luz branca. O brilho é um descritor 
subjetivo praticamente impossível de mensurar. Assim, o modelo HSI incorpora a 
noção acromática de intensidade e é um dos principais fatores na descrição da 
sensação de cores. 
 
Segundo Gonzalez et al. (2009) a intensidade (nível de cinza) é um descritor 
bastante útil para imagens monocromáticas. Essa quantidade é definitivamente 
mensurável e facilmente interpretável. O modelo HSI de cores (hue, saturation, 
intensity — matiz, saturação, intensidade), separa o componente intensidade das 
informações de cores (matiz e saturação) em uma imagem colorida. 
 
Essas características fazem do modelo HSI uma ferramenta ideal para o 
desenvolvimento de algoritmos de processamento de imagens com base em 
descrições de cores que são naturais e intuitivas para os seres humanos que são os 
desenvolvedores e usuários desses algoritmos. 
 
Baseado na informação que uma imagem colorida no padrão RGB pode ser 
vista como três imagens de intensidade monocromática (representando vermelho, 
verde e azul) é possível extrair a intensidade de uma imagem RGB. 
 
O modelo de cores HSI pode ser graficamente representado como um cone e 
usa coordenadas cilíndricas polares para representa-las, ao invés de coordenadas 
cartesianas como o sistema RGB. O vértice do cone HSI representa o preto, enquanto 
o seu eixo coincide com o eixo acromático. A intensidade aumenta em sentido 
contrário ao do vértice. 
 
Uma seção circular do cone mostra a variação de matizes ao redor de 
perímetro. A saturação aumenta para fora do centro, passando de cinza para tons 
pastéis e desses para matizes espectrais puros. 
 
 
23 
Dessa forma, a intensidade pode ser definda como uma medida da energia total 
envolvida em todos os comprimentos de onda responsáveis pela sensação de brilho 
dessa energia incidente sobre o olho. No cone, ela é a distância de um ponto até a 
origem ou ápice do cone. 
 
Figura 9: O modelo HSI em relação ao modelo RGB. 
 
6.1 FÓRMULAS PARA CONVERSÃO ENTRE MODELO RGB – HSI 
6.1.1 RGB PARA HSI 
Assumindo que os valores de R, G e B são normalizados na faixa [0, 1], a 
conversão do modelo de cor RGB para o modelo de cor HSI é dada pelas seguintes 
equações: 
 
 
 
 
24 
6.1.2 HSI PARA RGB 
Assumindo valores para H ∈ [0° , 360°] e S, I ∈ [0, 1], a conversão do modelo 
de cor HSI para o modelo de cor RGB é dada pelas seguintes equações: 
 
 
 
6.2 CONVERSÃO NO MATLAB 
A conversão entre modelos RGB e HSI no MATLAB somente podem ser feitas 
através de scripts. 
6.2.1 Conversão RGB para HSI 
function hsi = rgb2hsi(rgb) 
%Extraindo os componentes da imagem 
rgb = im2double(rgb); 
r = rgb(:,:,1); 
g = rgb(:,:,2); 
b = rgb(:,:,3); 
 
%Implementando as equações de conversão 
num = 0.5*((r-g) + (r-b)); 
den = sqrt((r-g).^2 + (r-b).*(g-b)); 
theta = acos(num./(den+eps)); 
 
H = theta; 
H(b > g) = 2*pi - H(b > g); 
H = H/(2*pi); 
 
 
25 
 
num = min(min(r,g), b); 
den = r + g + b; 
den(den == 0) = eps; 
S= 1 - 3 * num./den; 
 
H(S == 0) = 0; 
I = (r + g + b)/3; 
 
%Combina os três resultados para a imagem HSI. 
hsi = cat(3, H, S, I); 
 
 
6.2.2 Conversão HSI para RGB 
function rgb = hsi2rgb(hsi) 
%Extraindo os componentes do HSI 
H = hsi(:,:,1) * 2 * pi; 
S = hsi(:,:,2); 
I = hsi(:,:,3); 
 
%Implementando as equações de conversão 
R = zeros(size(hsi, 1), size(hsi, 2)); 
G = zeros(size(hsi, 1), size(hsi, 2)); 
B = zeros(size(hsi, 1), size(hsi, 2)); 
 
%Setor RG (0 <= H < 2*pi/3). 
idx = find( (0 <= H) & (H < 2*pi/3)); 
B(idx) = I(idx) .* (1 - S(idx)); 
R(idx) = I(idx) .* (1 + S(idx) .* cos(H(idx)) ./ cos(pi/3 - H(idx))); 
G(idx) = 3*I(idx) - (R(idx) + B(idx)); 
 
%Setor BG (2*pi/3 <= H <= 4*pi/3). 
idx = find( (2*pi/3 <= H) & (H < 4*pi/3) ); 
R(idx) = I(idx) .* (1 - S(idx)); 
G(idx) = I(idx) .* (1 + S(idx) .* cos(H(idx) - 2*pi/3) ./ cos(pi-H(idx))); 
B(idx) = 3*I(idx) - (R(idx) + G(idx)); 
 
%Setor BR 
idx = find( (4*pi/3 <= H) & (H <= 2*pi)); 
G(idx) = I(idx) .* (1 - S(idx)); 
B(idx) = I(idx) .* (1 + S(idx) .* cos(H(idx)-4*pi/3) ./cos(5*pi/3-H(idx))); 
R(idx) = 3*I(idx) - (G(idx) + B(idx)); 
 
%Combina resultados na imagem RGB 
rgb = cat(3, R, G, B); 
rgb = max(min(rgb, 1), 0); 
 
 
 
 
 
 
 
 
26 
6.3 EXEMPLO DE CONVERSÃO RGB PARA HSI 
6.3.1 Modelo RGB para HSI 
RGB HSI 
 
6.3.2 Decomposição das componentes H, S, I 
Componente H Componente S 
 
Componente I 
 
 
 
 
 
27 
6.3.3 Modelo HSI para RGB (usando script MATLAB) 
HSI RGB 
 
 
 
 
 
 
28 
7 REFERÊNCIAS BIBLIOGRÁFICAS 
 
GONZALEZ, Rafael C.; WOODS, Richard E. Processamentode Imagens Digitais: 
3.ed. São Paulo: Pearson Prentice Hall, 2010. 
 
GONZALEZ, Rafael C,; WOODS, Richard E. Digital Image Processing using 
Matlab: 2.ed. Editora Prentice Hall, 2004. 
 
SOUTO, Roberto Pinto. Segmentação de imagem multiespectral utilizando-se o 
atributo matiz. São José dos Campos: INPE, 2000. Disponível em 
www.obt.inpe.br/pgsere/Souto-R-P-2000/publicacao.pdf. Acesso em: 21 mar. 2019. 
 
Site oficial MATLAB. Disponível em: <http://mathworks.com>. Acesso em: 24 mar. 
2019. 
 
Site oficial CORELDRAW. Entendendo os modelos de cor. Disponível em: < 
http://product.corel.com/help/CorelDRAW/540240626/Main/BR/Doc/wwhelp/wwhimpl/
common/html/wwhelp.htm?context=CorelDRAW_Help&file=CorelDRAW-
Understanding-color-models.html>. Acesso em: 20 mar. 2019. 
 
CÁMARA-CHÁVES, Guillermo. Sistema de Cores. Disponível em: 
<http://www.decom.ufop.br/guillermo/BCC326/slides/Processamento%20de%20Imag
ens%20-%20Sistema%20de%20Cores.pdf>. Acesso em 20 mar. 2019. 
 
BREVE, Fabrício. Cores e Sistemas de Cores. Disponível em: 
<https://www.fabriciobreve.com/trabalhos/cores.pdf>. Acesso em: 20 mar. 2019. 
 
Instituto de Computação – UFF. Cores e Suas Representações. Disponível em: < 
http://www2.ic.uff.br/~aconci/CG-Aula12-2017.pdf>. Acesso em: 20 mar. 2019. 
 
Faculdade de Computação – UFU. Modelos de Cor. Disponível em: 
<http://www.facom.ufu.br/~backes/gsi058/Aula11-ModelosCor.pdf>. Acesso em: 21 
mar. 2019. 
 
 
 
29 
CEPSRM – UFRGS. Página Dinâmica para Aprendizado do Sensoriamento 
Remoto. Disponível em: <http://www.ufrgs.br/engcart/PDASR/formcor.html>. Acesso 
em: 21 mar. 2019. 
 
BRITO JR, Agostinho. Processamento Digital de Imagens. Disponível em: < 
https://agostinhobritojr.github.io/curso/cg/cor.pdf >. Acessado em 24 mar. 2019.

Continue navegando