Intensity Transformations

Slides:



Advertisements
Apresentações semelhantes
Continuidade: sem interrupções
Advertisements

Programação em Java Prof. Maurício Braga
Melhoramento de Imagens
Computer Vision Melhoramento de Imagens Paulo Sérgio Rodrigues PEL205.
Controle de Processos por Computador
Operações envolvendo imagens
Q-Q plots Construídos a partir das distribuições marginais de cada componente do vetor p-variado. São de fato um gráfico do quantil amostral versus quantil.
DERIVADAS E DIFERENCIAIS
Sinais e Sistemas – Capítulo 4
PERCEPTRON (CONTINUAÇÃO)
Chapter 2 Fundamentals (a) (b) Convenções de coordenadas:
O capítulo 3 trata de transformações de intensidade
Digital Image Processing, 3rd ed. © 1992–2008 R. C. Gonzalez & R. E. Woods Gonzalez & Woods Chapter 3 Intensity Transformations.
1.1. CONTROLADOR DIGITAL CONCEITO: sistema de dados amostrados, implementado por um hardware que executa uma lei de controle. LEI DE CONTROLE: programa.
Medida do Tempo de Execução de um Programa
The language of tecnical computing
Estatística e Probabilidade
Vetores e Matrizes Laboratório de ICCN Marco Antonio Montebello Júnior
Funções Criptográficas de Hash
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
PHP Tipos de dados Constantes.
Sistemas Operacionais
Interpolação de imagem
Introdução O interesse em métodos para processamento digital de imagens origina-se em duas principais aplicações: Melhoramento da informação da imagem.
Funções de Transformação de
Aula 02 Variáveis, Matrizes, Gráficos
VALORES ESPERADOS.
Propriedades da Integral Definidas
CADEIA DE CARACTERES (Strings)
FUSÃO DE IMAGENS DIGITAIS Prof. Dr. Antônio Nuno de Castro Santa Rosa.
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Integral definida Profª Ana Cristina Corrêa Munaretto
Introdução a aplicativos Java
3. Segmentação de Imagens
MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB
Fundamentos Modelo de imagens
Monitoria de Sistemas Inteligentes
How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface.
Processamento de Sinais
Campus de Caraguatatuba Licenciatura em Matemática Semestre de 2013
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Revisão Geral Técnicas de Realce Histogramas
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Capítulo III – Processamento de Imagem
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Aula 14 Disciplina: Sistemas de Controle 1 - ET76H
Programação e Aplicações Gráficas
Introdução ao MATLAB 5.3 para Hidrólogos
Digital Image Processing, 2nd ed. © 2002 R. C. Gonzalez & R. E. Woods 4. Image Enhancement in the Spatial Domain 4. Image Enhancement.
Monitoria de Sistemas Inteligentes IF684
Introdução à Computação Gráfica
Fundamentos de linguagens de programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Pratica 4 – MatLab Imagens RGB Pratica 4 – MatLab % T_1: Decompor a imagem Flor.bmp em suas três componentes RGB. f = imread('Flor.bmp'); fR =
Exemplos de Transformações Radiométricas
Introdução à Programação
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
PROCESSAMENTO DIGITAL DE IMAGENS
Felipe Nunes Flores – Programa de Educação Tutorial.
Filtragem de Imagens CONCI, A. AZEVEDO, E. e LETA, F
SENSORIAMENTO REMOTO CONTRASTE
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Pesquisa Aplicada à Computação utilizando MatLab® Anderson Vinícius Alves Ferreira Leonardo Vidal Batista (Tutor)
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Sistemas de Controle III N8SC3
TV de Bolso TV de Bolso apresenta Tutorial: editando seu vídeo no Movie Maker.
Comportamento Assintótico
Recursividade, Entrada pelo teclado e Funções com retorno Dilvan Moreira.
Transcrição da apresentação:

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering O capítulo trata-se de transformações no domínio espacial: transformações de intensidade e filtragem espacial.

Função imadjust A função imadjust é uma ferramenta básica em IPT para transformações de imagens em escala de cinza. Sintaxe: g = imadjust (f, [low_in high_in], [low_out high_out], gamma) Como mostrado na Fig. 3.2 essa função mapeia os valores de intensidade da imagem f para novos valores em g, tal que os valores entre low_in e high_in mapeiem entre low_out e high_out. Valores abaixo de low_in e acima de high_in são cortados; isto é, valores abaixo de low_in mapeiam em low_out, e valores acima de high_in mapeiam em high_out. A imagem de entrada pode ser da classe uint8, uint16, ou double, e a imagem de saída tem a mesma classe da imagem de entrada.

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Todos os valores dos parâmetros, exceto f, são especificados como valores entre 0 e 1, independente da classe de f. Se f é da classe uint8, imadjust multiplica os valores por 255 para determinar o valor a ser usado; Se f é da classe uint16 os valores são multiplicados por 65535. Usando a matriz vazia [ ] para [ low_in high_in] ou para [ low_out high_out] resulta nos valores default [0 1]. Se high_out é menor que low_out, a intensidade de saída é invertida. O parâmetro gamma especifica a forma da curva que mapeia os valores de intensidade. Se gamma é menor que 1, o mapeamento clareia os valores de saída; se gamma é maior que 1, o mapeamento escurece os valores de saída; e se o argumento gamma é omitido, o valor default é 1, mapemento linear.

Fig. 3.3a é uma imagem de mamograma, f. A Fig. 3.3b mostra o negativo, obtido usando o comando: g1 = imadjust(f,[0 1],[1 0]); útil para detalhe branco ou cinza no meio de uma região predominantemente escura. O negativo de uma imagem pode ser obtido também com a função: g = incomplement(f). A Fig. 3.3c mostra o resultado usando o comando g2 = imadjust(f, [0.5 0.75],[0 1]), que aumenta o contraste para o intervalo de interesse. Finalmente o comando g3 = imadjust(f,[], [], 2); produz um resultado similar ao da Fig.3.3c, comprimindo o low end e expandindo o high end da escala de cinza (Fig. 3.3d).

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

TRANSFORMAÇÕES LOGARITMICAS E DE EXTENSÃO DE CONTRASTE A transformação logaritmica é implementada por g = c* log(1 + double(f)), onde c = constante. Um dos principais usos dessa transformação é comprimir o intervalo dinâmico. Por exemplo, o espectro de Fourier pode ter valores no intervalo [0, 106] ou maior. Quando mostrado num monitor a imagem é mapeada linearmente para 8 bits, e os maiores valores dominam a tela, resultando em detalhes perdidos para os valores baixos. Computando o logaritmo 106 é reduzido para aproximadamente 14, que é muito mais manipulável. Quando é feita uma transformação logaritmica, é desejável trazer o resultado de volta para o intervalo completo do display. Para 8 bits, a forma mais fácil é gs = im2uint8(mat2gray(g));

A função da Fig. 3.4a é chamada de transformação de extensão de contraste (contrast stretching), porque o resultado é um alto contraste. No caso limite da Fig. 3.4b a saída é uma imagem binária. A função da Fig. 3.4a tem a forma onde r representa a intensidade da imagem de entrada e E controla a inclinação da função. Essa função é implementada usando o comando g = 1./(1+(m./(double(f) + eps)).^E) Nota-se o uso do eps (ver Tabela 2.10) que corresponde à precisão relativa da representação ponto-flutuante, para prevenir o overflow se f for zero. Como valor limite de T(r) é 1, os valores de saída estão mapeados no intervalo [0,1]. A forma da Fig. 3.4a foi obtido com E = 20.

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

EXEMPLO A Fig. 3.5a é um espectro de Fourier com valores no intervalo de 0 a 1.5x106, mostrado num sistema de mapeamento linear de 8 bits. A Fig. 3.5b mostra o resultado obtido usando o comando g= im2uint8(mat2gray(log(1+ double(f))));

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

ALGUMAS M-FUNCTIONS PARA TRANSFORMAÇÕES DE INTENSIDADE Manipulando um número variável de entradas e/ou saídas: para verificar o número de argumentos que entram numa M-function usar a função nargin n = nargin Similarmente a função nargout é usada como número de saídas de uma M-function. n = nargout Por exemplo, supondo que a seguinte M-function foi executada: T = testhv(4,5); O uso do nargin deve retornar 2, enquanto que o uso de nargout deve retornar 1.

A função nargchk pode ser usada no corpo de uma M-function para verificar se o número correto de argumentos foi passado. A sintaxe é msg=nargchk (low, high, number) A função retorna a mensagem Not enough input parameters se o número é menor que o low ou Two many input parameters se o número é maior que high. Se o número estiver entre low e high (inclusive), nargchk retorna uma matriz vazia. Um uso frequente da função nargchk é para parar a execução via error function se o número incorreto de argumentos foi usado. O número de argumentos usados é determinado pela função nargin.

Por exemplo, seja o código: function G = testhv2(x, y, z) ..... error (nargchk(2,3,nargin)); Digitando testhv2(6); que tem tem apenas um argumento de entrada produz um erro Not enough input arguments e a execução termina.

Para isso usa-se as variáveis varargin e varargout. Por exemplo: É útil poder escrever funções com número de argumentos de entrada e/ou saída variável. Para isso usa-se as variáveis varargin e varargout. Por exemplo: function [m,n] = testhv3(varargin) aceita um número variável de entradas na função testhv3, e function [varargout] = testhv4(m,n,p) retorna um número variável de saídas da função testhv4. Se a função testhv3 tem um argumento fixo de entrada, x, seguido de um número variável de argumentos de entrada, então function [m,n] = testhv3(x, varargin) faz com que o usuário inicie fornecendo o segundo argumento. Similar aplicação pode ser feito para varargout.

UMA OUTRA M-FUNCTION PARA TRANSFORMAÇÃO DE INTENSIDADE Nesta seção é desenvolvida uma função que computa as transformações: negativo, log, gamma e extensão de contraste. Essas transformações foram selecionadas porque usamos posteriormente, e também para ilustrar os mecanismos envolvidos na escrita de uma M-function para transformações de intensidade. Para escrever essa função usamos a função changeclass, que tem a sintaxe g = changeclass (newclass, f) Essa função converte a imagem f a uma classe especificada no parâmetro newclass e fornece a saída g. Os valores válidos de newclass são ‘uint8’, ‘uint16’ e ‘double’.

Function g = intrans(f,varargin) (ver o código no livro) A Fig. 3.6b mostra o resultado do uso da função f = intrans (f,’stretch’, mean2(im2double(f)),0.9); sobre a imagem da Fig. 3.6a.

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

PROCESSAMENTO DE HISTOGRAMA E PLOTAGEM DE FUNÇÃO Geração de plotagem de histogramas de imagens: A função para manipular histogramas é imhist, que tem a sintaxe h = imhist(f,b) onde b é o número de subdivisões na escala de intensidade. Se b é omitido, o valor default = 256. O histograma normalizado pode ser obtido usando p = imhist(f,b)/numel(f) Considerando a imagem da Fig. 3.3a, a forma mais simples de plotar o seu histograma é: imhist(f); A Fig. 3.7a mostra o resultado.

Os histogramas são também plotadas em bar graphs Os histogramas são também plotadas em bar graphs. Para tanto devemos usar a função: bar (horz, v, width) Onde v é um vetor linha contendo os pontos a serem plotados, horz é um vetor de mesma dimensão que contem os incrementos na escala horizontal, e width é um número entre 0 e 1. Se horiz é omitido, o eixo horizontal é dividido em unidade de 0 a length(v). Quando width é 1, as barras se tocam; quando é zero, as barras são apenas linhas verticais, como na Fig. 3.7a. O valor default é 0.8. Quando o bar graph é usado, reduz a resolução horizontal dividindo em intervalos.

A Fig. 3.7b mostra o resultado. O seguinte programa produz um bar graph, com o eixo horizontal dividido em 10 níveis. h = imhist(f); h1 = h(1:10:256); horz = 1:10:256; bar(horz, h1) axis([0 255 0 15000]) set(gca, ‘xtick’, 0:50:255) set(gca, ‘ytick’, 0:2000:15000) A Fig. 3.7b mostra o resultado.

O seguinte programa produz o histograma da Fig. 3.7c. h = imhist(f); h1 = h(1:10:256); horz = 1:10:256; stem(horz, h1, ‘fill’) axis([0 255 0 15000]) set(gca, ‘xtick’, 0:50:255) set(gca, ‘ytick’, 0:2000:15000)

Finalmente o histograma da Fig.3.7d é obtido por: h = imhist(f); plot(h) axis([0 255 0 15000]) set(gca, ‘xtick’, 0:50:255) set(gca, ‘ytick’, 0:2000:15000)

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

EQUALIZAÇÃO DE HISTOGRAMA A equalização de histograma é implementada usando a função histeq, com a sintaxe g = histeq(f, nlev) onde nlev é o número de níveis de intensidade especificado para a imagem de saída. Se nlev é igual a L (número total de possíveis níveis), o histeq implementa a função de transformação, T (rk), diretamente. Se nlev é menor que L, histeq tenta distribuir os níveis tal que eles se aproximem de um histograma achatado (flat). O valor default de nlev é 64.

A Fig. 3.8 mostra o resultado da aplicação da equalização de histograma, passo a passo, usando o seguinte programa: imshow(f) figure, imhist(f) ylim (‘auto’) g = histeq (f, 256); figure, imshow (g) figure, imhist (g) ylim(‘auto’)

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

ESPECIFICAÇÃO DE HISTOGRAMA O seguinte comando implementa a especificação de histograma g = histeq(f, hspec) onde hspec é o histograma especificado ( um vetor linha de valores especificados).

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

FILTRAGEM ESPACIAL

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering

Intensity Transformations Chapter 3 Intensity Transformations and Spatial Filtering