Na aula sobre média e desvio padrão, analisamos a média dos tons de cinza da famosa imagem de Albert Eistein, também aplicando sobre a análise desta média os desvios padrões.
Na atividade passada para ser feita em casa, foi pedido que fossem analisadas essa mesma imagem com variações de brilho e contraste.
Primeiro, vou deixar aqui o código comentado utilizado para isso.
//variável que armazena a imagem
PImage img;
void setup(){
size(640, 480);
float t=0, mediaT, somaT=0;
int pos;
//carregamento da imagem
img = loadImage("einstein.jpg");
//a imagem é percorrida e são pegues os valores vermelhos dos pixels
for (int x = 0; x < 640; x++){
for (int y = 0 ; y < 480; y++){
pos = y * 640 + x;
t = red(img.pixels[pos]);
//aqui, são deixados o valores totais somados destes pixels
somaT = somaT + t;
}
}
//aqui, é calculada a média destes valores
mediaT = somaT/(640*480);
println("Média de Tons é ", mediaT);
/*aqui, é calculado o desvio padrão a partir da raiz quadrada da variância (armazenada
na variável "v"*/
float v, SomaV = 0;
for (int x = 0; x < 640; x++){
for (int y = 0; y < 480; y++){
pos = y * 640 + x;
t = red(img.pixels[pos]);
v = pow(t - mediaT, 2);
SomaV = SomaV + sqrt(v);
}
}
//desvio padrão
float media = SomaV/(640*480);
println(media);
}
void draw(){
image(img, 0, 0);
}
Nas imagens com níveis diferentes de brilho e contraste havia uma alteração significativa nos valores da média e desvio padrão. Quanto maior o brilho, maior o desvio padrão, o que é refletido pelo maior valor que um brilho maior dá para os pixels que compõem a imagem.
Nenhum comentário:
Postar um comentário