Exercício 1: Algoritmo de Segmentação Iterativa : // Cálculo da Media Inicial

9
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

description

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. - PowerPoint PPT Presentation

Transcript of Exercício 1: Algoritmo de Segmentação Iterativa : // Cálculo da Media Inicial

Page 1: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

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

Page 2: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

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;

Page 3: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

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;}

Page 4: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

// 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?

Page 5: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

Exercício 2: Melhoramento de Imagem (contraste)

// defina uma função de melhoramento com C constante entre 0 e 255, e y RealG(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?

Page 6: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

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é 255 faça

H[i] = 0;

fim para

Page 7: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

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é 255 faça

H[i] = H[i]/total;

fim para

Plote o histograma no Excel para observar seu comportamento

Page 8: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

// calcula do histograma cumulativopara i=1 até 255 faça H[i] = H[i] + H[i-1];fim para

// aplica a equalização na imagem utilizando o Histograma cumulativopara cada pixel(x,y) faça val = (r+g+b)/3; NovaImagem(x,y) = floor( (H[val] * 255) + 0.5 );fimpara

// cálculo de novo histograma// garante que o histograma não possui resíduospara i=0 até 255 faça H[i] = 0;fim para

Page 9: Exercício  1:  Algoritmo  de  Segmentação Iterativa : //  Cálculo  da Media  Inicial

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 pixelpara i=0 até 255 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?