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 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; 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; } // 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? 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 maior que 1? e y é um valor próximo // Responda: o que acontece com a imagem se C = 1 e y = 1.0? Exercício 2: Histogrâmica Melhoramento do Contraste // 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 baseado em Equalização 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 // calcula do histograma cumulativo para i=1 até 255 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) + 0.5 ); fimpara // cálculo de novo histograma // garante que o histograma não possui resíduos para i=0 até 255 faça H[i] = 0; fim para 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é 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?