Programowanie filtrow 2D (glownie normalizacja)
Damian Sobota - 04-06-2006 00:37
Programowanie filtrow 2D (glownie normalizacja)
Witam serdecznie!
Pisze wlasnie projekt na pracownie z programowania obiektowe. Moj program to mini-edytor graficzny, w ktorym sa tylko filtry. Mam problem z filtrami kontekstowymi (chyba teoretyczny bardziej, gdyz wydaje mi sie, ze jestem niedoinformowany po prostu). Matryce filtrow maja rozmiar 3x3. I teraz pytanie, czy np. Gaussian Blur dla matrycy tej wielkosci daje juz silne skutki. Zastosowalem matryce:
1 2 1 2 4 2 1 2 1
Efekt jest raczej slaby. Filtru trzeba uzyc 5-7 razy, zeby bylo cos widac (na zwyklym zdjeciu rozmiaru rzedu 400x400).
I teraz mam pytanie odnosnie normalizacji. Wiem, ze kazdy piksel trzeba podzielic przez sume elementow macierzy (bo wszystkie sa dodatnie). Czy to prawda? W przypadku barw zapisanych w RGB, kazdy z odcieni dziele przez sume (tu 16).
Co innego, gdy mam filtry konwulacyjne o macierzy z elementami zarowno dodatnimi i ujemnymi. Wtedy podobno trzeba zastosowac wzor:
i'(x,y)=(i(x,y)-min(i))/(max(i)-min(i))*255
gdzie i'(x,y) to piksel (x,y) z nieznormalizowanego obrazu i poddany normalizacji (slowem proste sciagniecie barw do przedzialu [0...255]). Pytanie teraz: czy do kazdego z odcieni stosuje powyzszy wzor, przy czym wartosci min i max sa brane ze zbioru danych odcieni? Slowem, czy dla kazdego z kanalow R,G,B stosuje wzory:
iR'(x,y)=(iR(x,y)-minR(i))/(maxR(i)-minR(i))*255 iG'(x,y)=(iR(x,y)-minG(i))/(maxG(i)-minG(i))*255 iB'(x,y)=(iR(x,y)-minB(i))/(maxB(i)-minB(i))*255
?
(Oznaczenia mysle, ze sa jasne). Czy moze max(i):=max{maxR(i),maxG(i),maxB(i)}, analogicznie min(i)?
A moze wzor ten stosowac rowniez dla matryc z wszystkimi elementami dodatnimi?
Zastanawiam sie, jaka normalizacje stosowac w przypadku filtrow punktowych opartych na funkcjach arytmetycznych (dodawanie, mnozenie, potegowanie, logarytmowanie, pierwiastkowanie). Czy stosowac proste uciecie wszystkich wartosci powyzej 255 do 255? Czy tez zastosowac dla kazdego piksela powyzsze wzory?
Z gory dziekuje za rozwianie moich watpliwosci.
Serdecznie pozdrawiam, Damian Sobota.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
arcis - 05-06-2006 00:18
Czy tez zastosowac dla kazdego piksela powyzsze > wzory?
kiedyś popełniłem program który normalizował zdjęcia przez rozszerzanie histogramu. Robiłem to dla oddzielnych składowych rgb oraz w innych opcjach dla ls, l, i hls. Przykładowe zmiany są na stornie tego programu: http://www.arturh.no-ip.com/programy/nafk.html#histo01 w dziale "ustalenie metody automatyzacji histogramów". przyjżyj się jakie to daje efekty. pozdr a
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
oracle -> oracle lub oracle -> mysql replikacja - programy
[spam] sprzedam używane programy Adobe/Macromedia [spam sprzedam]
Prezentacja =?ISO-8859-2?Q?zdj=EA=E6_z_w=B3=B1czeniem/wy=B3a?==?ISO-8859-2?Q?czeniem_-_jaki_program_polecacie_do_tego_?=
Program do konwersji =?ISO-8859-2?Q?zdj=EA=E6_B=26W_-=3E_?==?ISO-8859-2?Q?kolor?=
SQL Server 2005: początkujący programista T-SQL ma problem
Program magazynowy - czy jest taki jakiego =?UTF-8?B?cG90cnplYnVq?==?UTF-8?B?xJk/?=
Import faktur do Insert Subiekt GT oraz Wapro Wf-Mag z innego programu
=?iso-8859-2?Q?program_foxpro_i_win_vista_=3F_w_xp_dzia=B3a=B 3o.?=
[Oracle] Czy znacie jakiś programik który wykonuje sie z lini poleceń do porównywania Schemy?
=?ISO-8859-2?Q?[MS_SQL]_=A6ledzenie_zapyta=F1_wykonywanych_przez_program? =
zanotowane.pldoc.pisz.plpdf.pisz.plgabrolek.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|