3


3. Napisać program wyznaczający jasność (J) i kontrast (C) obrazu.
int poziom_jasnosci(int i, int j)
{
// funkcja wyznaczajaca jasnosc w punkcie (i, j)
}

int jasnosc(int M, int N)
{
int wynik=0;
for (int i=1; i<=M; i++)
{
for(int j=1; j<=N; j++)
{
wynik += poziom_jasnosci(i, j);
{
{
return ((1/(M*N))*wynik);
{

int kontrast(int M, int N)
{
int wynik=0;
for (int i=1; i<=M; i++)
{
for(int j=1; j<=N; j++)
{
wynik += (poziom_jasnosci(i, j)
jasnosc(M, N))^2;
{
{

return (sqrt((1/(M*N))*wynik));
}

zamiast:
hR[ obraz[I][j].r]++;
hG[ obraz[I][j].r]++;
hB[ obraz[I][j].r]++;

to:
hR[ obraz[I][j].r]++;
hG[ obraz[I][j].g]++;
hB[ obraz[I][j].b]++;

//deklaracje **********************************************
int hR[256]; //(a)(a)(a)(a)(a)
int hG[256]; //(a)(a)(a)(a)(a)
int hB[256]; //(a)(a)(a)(a)(a)
int histogramL[511]; //(c)(c)(c)(c)(c)dlaczego 511?
struct pixel{
unsigned char r;
unsigned char g;
unsigned char b;
}
pixel obraz[(K+1),(L+1)]; //obraz typu pixel

int hC[256]; //(b)(b)(b)(b)(b)
int hM[256]; //(b)(b)(b)(b)(b)
int hY[256]; //(b)(b)(b)(b)(b)

//zerowanie tablic histogramów
for (i=0;i<=255;i++){
hR[i]=0; //(a)(a)(a)(a)(a)
hG[i]=0; //(a)(a)(a)(a)(a)
hB[i]=0; //(a)(a)(a)(a)(a)

hC[i]=0; //(b)(b)(b)(b)(b)
hM[i]=0; //(b)(b)(b)(b)(b)
hY[i]=0; //(b)(b)(b)(b)(b)
}
for (i=0;i<=511;i++)
histogramL[i]=0; //(c)(c)(c)(c)(c)

//pętla główna
for (i=1;i<=K;i++)
for(j=1;j<=L;j++) {
hR[obraz[i,j].r]++; //(a)(a)(a)(a)(a)
hR[obraz[i,j].g]++; //(a)(a)(a)(a)(a)
hR[obraz[i,j].b]++; //(a)(a)(a)(a)(a)

hC[255-obraz[i,j].r]++; //(b)(b)(b)(b)(b)
hM[255-obraz[i,j].r]++; //(b)(b)(b)(b)(b)
hY[255-obraz[i,j].r]++; //(b)(b)(b)(b)(b)

wartość_min = min(obraz[i,j].r,obraz[i,j].g,obraz[i,j].b);
wartość_max = max(obraz[i,j].r,obraz[i,j].g,obraz[i,j].b);
histogramL[wartość_min+wartość_max]++; //(c)(c)(c)(c)(c)


wersja ćwiczeniowa salomonowa

voidrgb2hls (double r, double g, double b, double &h, double &l, double &s)
{
double max = max (max (r,g),b);
double min = min (min (r,g),b);
l = (max + min) / 2 // wyznaczenie jasności l
if (max = min) {
s = 0; h = 0; } // wartość niezdefiniowana
kolory achromatyczne
else
{
if (l <= 0.5) s = (max - min)/(max + min); // wyznaczenie nasycenia s
else s = (max -min) / (2 - max - min); //
if (r = max) h = (g - b) / (max - min); // wyznaczenie barwy h




Wyszukiwarka

Podobne podstrony:
edukomp kl 3?u przy naprawcze
v3
page36
3 Goniometricke funkce
page3
baza 3
3? EXAM LANGUAGE ELEMENTSfor students
11id?3

więcej podobnych podstron