Zmiana jasności

background image

Zad3 Wyzanczenie Histogramu
int hR[256], hG[256], hB[256],
histogramL[511];
struct pixel{char r,g,b;}
pixel obraz[(K+1),(L+1)];
for (i=0;i<=255;i++)
{hR[i]=0; hG[i]=0; hB[i]=0;}
for (i=0;i<=511;i++)
histogramL[i]=0;
for (i=1;i<=K;i++)
for(j=1;j<=L;j++) {
hR[obraz[i,j].r]++;
hR[obraz[i,j].g]++;
hR[obraz[i,j].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]++;
}
Zad6 Zmiana jasności
int i, j, rvalue, gvalue, bvalue;
double r[256], g[256], b[256];
TColor color;
for (i=0; i<256; i++)
{r[i] = 0;g[i] = 0;b[i] = 0;}
for (i=0; i<ObrazKolorowy->Width;
i++)
for (j=0; j<ObrazKolorowy->Height;
j++)
{
color = ObrazKolorowy->Canvas-
>Pixels[i][j];
rvalue = GetRValue(color);
gvalue = GetGValue(color);
bvalue = GetBValue(color);
//zmien wartosc wedlug tablicy LUT
color = (TColor)(LUT[rvalue] +
((int)LUT[gvalue] << 8) +
((int)LUT[bvalue] << 16));
//oblicz histogram
WynikKolorowy->Canvas->Pixels[i][j]
= color;
r[GetRValue(color)]++;
g[GetGValue(color)]++;
b[GetBValue(color)]++;
}
Histogram1->SeriesList->Series[0]-
>Clear();
Histogram1->SeriesList->Series[1]-
>Clear();
Histogram1->SeriesList->Series[2]-
>Clear();
Histogram1->SeriesList->Series[0]-
>AddArray(r, 255);
Histogram1->SeriesList->Series[1]-
>AddArray(g, 255);
Histogram1->SeriesList->Series[2]-
>AddArray(b, 255);
Zad7 Zmiana kontrastu
int i, j, rvalue, gvalue, bvalue;
double r[256], g[256], b[256];
TColor color;
for (i=0; i<256; i++)
{r[i] = 0;g[i] = 0;b[i] = 0;}
for (i=0; i<ObrazKolorowy->Width;
i++)
for (j=0; j<ObrazKolorowy->Height;
j++)
{
color = ObrazKolorowy->Canvas-
>Pixels[i][j];
rvalue = GetRValue(color);
gvalue = GetGValue(color);
bvalue = GetBValue(color);
//zmien wartosc wedlug tablicy LUT
color = (TColor)(LUT[rvalue] +
((int)LUT[gvalue] << 8) +
((int)LUT[bvalue] << 16));
//oblicz histogram
WynikKolorowy->Canvas->Pixels[i][j]
= color;
r[GetRValue(color)]++;
g[GetGValue(color)]++;
b[GetBValue(color)]++;
}
Histogram1->SeriesList->Series[0]-
>Clear();
Histogram1->SeriesList->Series[1]-
>Clear();
Histogram1->SeriesList->Series[2]-
>Clear();
Histogram1->SeriesList->Series[0]-
>AddArray(r, 255);
Histogram1->SeriesList->Series[1]-
>AddArray(g, 255);
Histogram1->SeriesList->Series[2]-
>AddArray(b, 255);

Zad9.
Filtr medianowy
służy do usuwania
zakłóceń typu punktowego. Działa
erozyjnie, co jest zjawiskiem
niepożądanym. Polega to na tym, że
po
wielokrotnym użyciu filtru
medianowego krawędzie obiektów o
różnych
poziomach jasności stają się
poszarpane. W wyniku działanie
filtru
medianowego piksel obrazu
wyjściowego przyjmuje wartość
mediany z
wartości pikseli obrazu wejściowego
znajdujących się w jego otoczeniu.
Medianę wyznacza się w ten sposób,
że wartości pikseli z otoczenia
sortuje się od największego do
najmniejszego a następnie wybiera
się
wartość środkową ciągu. W przypadku
masek o parzystej liczbie pikseli
w otoczeniu, medianę oblicza się
przez uśrednienie wartości dwóch
pikseli środkowych posortowanego
ciągu.
10. Wyznaczyć szerokość pasma
video(VBW) karty graficznej
V

Active

=(1/V

Freq

)-V

Blank

H

Freq=

L/V

Active

H

Video

=(1/H

Freq

)-H

Blank

VBW=K/H

Video

20.Rzutowanie perspektywistyczne I
ortogonalne
glFrustum
( GLdouble left, GLdouble
right, GLdouble bottom, GLdouble
top, GLdouble near, GLdouble far )
Parametry left, right, bottom i top
wyznaczaja rozmiary górnej podstawy
bryły odcinania (jest to obszar
bezposrednio odwzorowywany na
obszar renderingu), a near i far
wyznaczaja połozenie odpowiednio
górnej i dolnej podstawy ostrosłupa
(przedniej i tylnej płaszczyzny
odcinania)
gluPerspective(fovy, aspect, near,
far
);
- fovy - kat pola widzenia w
płaszczyznie pionowej YZ [0,180_ ]
- aspect - stosunek szerokosci
obszaru rzutowania do jego
wysokosci
- near, far – odległosc płaszczyzn
odciecia (-z)
glOrtho(left, right, bottom, top,
near, far
);
parametry:
- left, bottom - współrzedne (x, y)
lewego dolnego wierzchołka
- right, top - współrzedne (x, y)
prawego górnego wierzchołka
- near, far – odległosc płaszczyzn
odcięcia
21.Składanie przekształceń OpenGl
Przesunięcie,skalowanie,obrót
Przekształcenia macierzowe w OpenGL
wykonywane są w odwrotnej
kolejnosci niż wynikałoby to z kodu
programu.
22.Prymitywy graficzne
GL_POINTS – pojedyncze punkty;
GL_LINES – odcinki;
GL_LINE_STRIP – linia łamana;
GL_LINE_LOOP – łamana zamknięta;
GL_TRIANGLES – trójkąty;
GL_TRIANGLE_STRIP – pasek
trójkątów;
GL_TRIANGLE_FAN – wachlarz
trójkątów;
GL_QUADS – czworokąty;
GL_QUAD_STRIP – pasek czworokątów;
GL_POLYGON – wielokąt o dowolnej
liczbie wierzchołków.


Wyszukiwarka

Podobne podstrony:
Zarzadzanie zmianami GR3
Zmiana spoleczna i jej przyczyna
Postawy i ich zmiana
6 zmiana społ
WYKL 5b zmiana kształtu odlewu
Zmiana harmonogramu
Zmiana (2)
091 zmiana Dz U 2012 460
Zmiana ikon teczek dokumentow
zegary zmiana podswietlenia
Zmiana Ustawy z 2008
84 93 zmiana2
postawy i zmiana postaw, praca licencjacka - materiały
Zmiana ustawy o podatkach i opłatach lokalnych, Studia, Samorząd terytorialny, podatki lokalne
Zmiana wiary, MITOLOGIE ŚWIATA

więcej podobnych podstron