A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Para Todos os exercícios abaixo, utilize o mesmo framework (que já funciobou!!!) para manipulação de imagens em OpenGL utilizado na aula anterior.

Apresentações semelhantes


Apresentação em tema: "Para Todos os exercícios abaixo, utilize o mesmo framework (que já funciobou!!!) para manipulação de imagens em OpenGL utilizado na aula anterior."— Transcrição da apresentação:

1 Para Todos os exercícios abaixo, utilize o mesmo framework (que já funciobou!!!) para manipulação de imagens em OpenGL utilizado na aula anterior para conversão em tons de cinza e cálculo das bordas. Existem alguma inagens com baixo contraste que podem ser baixadas na página da disciplina

2 Exercício 1: Algoritmo de Segmentação Iterativa:
// Cálculo da Media Inicial Soma = 0; Total = 0; para cada pixel(x,y) faça val = (r + g + b)/3; Soma = Soma + val; Total = Total + 1; fimpara MediaAtual = Soma/Total;

3 MadiaAnterior = 0; iterMax = 10; iter = 0; {
Enquanto (abs( MediaAtual – MeadiAnterior ) > Limiar) OU (iter < iterMax) { soma1 = 0; total1 = 0; soma2 = 0; tatal2 = 0; para cada pixel(x,y) faça val = (r + g + b)/3; se val < MediaAtual soma1 = soma1 + val; total1 = total1 + 1; senão soma2 = soma2 + val; total2 = total2 + 1; } MediaAnterior = MediaAtual; MediaAtual = ((soma1/total1) + (soma2/total2))/2; iter = iter + 1;

4 // Segmentação binária para cada pixel(x,y) faça { val = (r + g + b)/3; se val < MediaAtual pixel(x,y) = 0; senão pixel(x,y) = 255; } Desafio!!! Como poderia ser feita uma segmentação não-binária? com 4 ou 8 tons de cinza finais; ao invés de somente 255 ou 0?

5 Exercício 2: Melhoramento de Imagem (contraste)
// defina uma função de melhoramento com C constante entre 0 e 255, e y Real G(x,y) = C * pixel(x,y)^y para cada pixel(x,y) faça val = (r + g + b)/3; NovaImagem(x,y) = floor((C * val ^y) + 0.5); fimpara // Responda: o que acontece com a imagem se C = 1 e y é um valor próximo de zero? // Responda: o que acontece com a imagem se C = 1 e y é um valor próximo maior que 1? // Responda: o que acontece com a imagem se C = 1 e y = 1.0?

6 Exercício 2: Melhoramento do Contraste baseado em Equalização Histogrâmica
// cálculo do histograma // defina um vetor para o histograma float* H = new float[256]; // garante que o histograma não possui resíduos para i=0 até faça H[i] = 0; fim para

7 total = 0; para cada pixel(x,y) faça val = (r + g + b)/3; H[val] = H[val] + 1; total = total + 1; fimpara // calcula as probabilidades de cada pixel para i=0 até faça H[i] = H[i]/total; fim para Plote o histograma no Excel para observar seu comportamento

8 // calcula do histograma cumulativo
para i=1 até faça H[i] = H[i] + H[i-1]; fim para // aplica a equalização na imagem utilizando o Histograma cumulativo para cada pixel(x,y) faça val = (r+g+b)/3; NovaImagem(x,y) = floor( (H[val] * 255) ); fimpara // cálculo de novo histograma // garante que o histograma não possui resíduos para i=0 até faça H[i] = 0;

9 total = 0; para cada pixel(x,y) da NovaImagem faça val = (r + g + b)/3; H[val] = H[val] + 1; total = total + 1; fimpara // calcula as probabilidades de cada pixel para i=0 até faça H[i] = H[i]/total; fim para Plote no Exel o novo Histograma e tire suas próprias conclusões a respeito das distribuições histogrâmicas e o constraste da imagem; por que melhorou o contraste?


Carregar ppt "Para Todos os exercícios abaixo, utilize o mesmo framework (que já funciobou!!!) para manipulação de imagens em OpenGL utilizado na aula anterior."

Apresentações semelhantes


Anúncios Google