Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Algoritmus pro získání jedné kvalitnější fotky z několika méně kvalitních

Ahoj, dostal jsem od kamaráda výzvu, skript, který by z několika méně kvalitních obrázků udělal jeden kvalitnější, říkal, že to kdysi udělal v Delphi, ale nechce mi říct, jak to dělal, že ať se o to pokusím sám. Pokud by někdo věděl nějakou stránku, kde by byl nějaký stručný popis nebo to sem stručně napsal, tak bych byl rád. Nic mě totiž nenapadá :-). Díky za odpovědi.

Předmět Autor Datum
Co to je za kravinu? Jake nekolik obrazkov? Co znamena ta "nekvalita"?
MM.. 30.08.2009 19:59
MM..
Upřesnil mi to tak, že si nafotil několik obrázků s hvězdami, ty pak hodil do toho programu a vypliv…
marekdrtic 30.08.2009 20:21
marekdrtic
Lol. Na vysetreni uz bol? :) P.S. to mozes tak akurat skusit posuvat a natacat a poziciu s najmenej…
MM.. 30.08.2009 20:22
MM..
Z viac obrazkov si viem predstavit len urobit panoramu. "Zlepsovanie kvality" si viem predstavit z…
MM.. 30.08.2009 20:19
MM..
OK, ten upsampling pro mě asi bude nejlepší: [http://www.cs.huji.ac.il/~raananf/projects/upsampl ing…
marekdrtic 30.08.2009 20:31
marekdrtic
Tie algoritmy su komplikovane a preto som ti napisal ze co mas hladat na google. Interpolacia obrazk…
MM.. 30.08.2009 20:37
MM..
http://www.cambridgeincolour.com/tutorials/image-i nterpolation.htm Už to začínám trochu chápat, ne…
marekdrtic 30.08.2009 20:59
marekdrtic
No, a to su este z tych jednoduchsich. Tak prijemne studovanie ;)
MM.. 30.08.2009 23:15
MM..
A až tohle všechno budu chápat tak Mitchell, Gaussian, Bell, BSpline a tyhle typy, co jsou v XNView…
marekdrtic 31.08.2009 06:18
marekdrtic
Podívej se na AviSynth fórum - tam se interpoluje furt. Jsou tam i filtry a budou tam zdrojáky.
kmochna 30.08.2009 21:00
kmochna
Díky za tip ;-).
marekdrtic 30.08.2009 21:00
marekdrtic
tvé pozornosti ještě doporučím metodu superpozice několika snímků (pěkně ji popsal L. Souček v knize…
touchwood 31.08.2009 06:42
touchwood
Díky, určitě se podívám ;-).
marekdrtic 31.08.2009 07:30
marekdrtic
Ano to by mohol chciet keby mu slo o odstranenie "ruseni". Pytal som sa to hned na zaciatku, ale evi… poslední
MM.. 31.08.2009 23:17
MM..
v poslední době se do většiny softů na zpracování fotek implementuje graficka knihovna Intel® Integr…
Jan Fiala 31.08.2009 07:35
Jan Fiala
jj, ale mě nejde o to napsat program, ve kterém bude: #include <obrazky.h> int main(void) { char ob…
marekdrtic 31.08.2009 07:40
marekdrtic
Tak jsem se pokusil o "Nearest Neighbour" a výsledky nejsou nijak valné... [http://pc.poradna.net/fi…
marekdrtic 31.08.2009 09:19
marekdrtic
Zkus to udělat takto (snad se mi to podaří vysvětlit): Ať skript zjistí co je objekt a co je "okolí…
kmochna 31.08.2009 09:29
kmochna
Ať skript zjistí co je objekt a co je "okolí". Jen o tomhle řádku, by se dala napsat celá kniha...:…
MaSo 31.08.2009 19:41
MaSo
Mas tam nejaku chybu, takto byt vysledok nemoze. napr. lavy spodny musi ostat cierny. Si to odkrokuj…
MM.. 31.08.2009 23:16
MM..
Velice krásná a podrobná série článků o interpolaci je tady: http://ronbigelow.com/articles/interpol…
Miloslav 31.08.2009 09:33
Miloslav
Moc pěkný, thx ;-).
marekdrtic 31.08.2009 09:54
marekdrtic
Na něco jsem si vzpoměl, četl jsem někde článek o zvětšování fotografií na principu toho, že se poří…
Miloslav 31.08.2009 19:36
Miloslav

Lol. Na vysetreni uz bol? :)

P.S. to mozes tak akurat skusit posuvat a natacat a poziciu s najmenej rozdielmi potom spriemerovat. Ale ze by z toho bola "vyssia kvalita", to je silne pochybne.
P.S.2. pokial foti so stativom tak to staci spriemerovat kazdy pixel apod, netreba posuvat. Ale je to IMHO kravina.

Z viac obrazkov si viem predstavit len urobit panoramu.

"Zlepsovanie kvality" si viem predstavit z jedneho obrazku napr. google:
- interpolation
- Digital Image Interpolation
- image upsampling
ak je ta "nekvalita" nizke rozlisenie. Ak je nekvalita nieco ine (rusenie, artefakty) tak je nutne presne definovat ze jaku nekvalitu chces odstranovat.

OK, ten upsampling pro mě asi bude nejlepší:
[http://www.cs.huji.ac.il/~raananf/projects/upsampl   ing/eye.jpg]

Teď ale jak to zalgoritmizovat. Napadlo mě to udělat třeba tak, že bych z jednoho pixelu udělal čtyři (jakoby 2x zvětšil ten obrázek) a barvy těch "subpixelů" dopočítal podle sousedů (průměr barvy subpixelu a souseda?), tím by se ten obrázek jakoby "zjemnil" nebo je moje úvaha jako obvykle zase totálně blbá? :-)

Tie algoritmy su komplikovane a preto som ti napisal ze co mas hladat na google. Interpolacia obrazku je jedna zo zlozitejsich veci, neni to na 2 hodky.

P.S. s tymi susedmi mozes zacat ale neni to interpolacia. Nejake zjemnenie to ale bude samozrejme (P.S. kazdy subpixel (roh povodneho pixelu) ma vpodstate 3 susedov, 2 po bokoch a jeden sikmo (ten by som dal do priemeru s mensou vahou).

tvé pozornosti ještě doporučím metodu superpozice několika snímků (pěkně ji popsal L. Souček v knize Runa Rider, dokonce i tam šlo o snímky oblohy, resp. snímky Marsu, jehož originální snímky, díky chvění vzduchu nebyly použitelné). Jedná se o to, že "sesvítíš" (elektronicky tomu odpovídá použití odpovídajícího procenta průhlednosti) několik snímků do jednoho - a tak se výsledek "zprůměruje."

Ano to by mohol chciet keby mu slo o odstranenie "ruseni". Pytal som sa to hned na zaciatku, ale evidentne programator nevie co vlastne zakaznik chce (co je vpodstate normalna situacia z praxe :), ale bude lepsie ked si s nim vyjasni ze ci chce odstranovat ruchy alebo zvysovat rozlisenie interpolaciou alebo co)

jj, ale mě nejde o to napsat program, ve kterém bude:

#include <obrazky.h>

int main(void)
{
char obrazek = vemobrazekzesouboru('obrazek.png');

resample(obrazek, 'billinear');
}

ale pochopit to, jak to celé funguje ;-), ani luštit v kodu, co to tam dělají pro mě není, pro mě je lepší normální lidský popis nebo matematické vzorečky.

PS: sry za prasečí céčko, zatím to není můj šálek kávy ;-).

Tak jsem se pokusil o "Nearest Neighbour" a výsledky nejsou nijak valné...
[http://pc.poradna.net/file/view/1796-image-png]
Nahoře je původní "obrázek", dole projetý skriptem (zvětšeno rozlišení a dopočítáno podle sousedů)
Nebo se touhle metodou lepšího výsledku bez znetvoření barev dosáhnout nedá? Dopočítával jsem to takhle:
4 díly původní barvy + 1 díl průměru okolních pixelů.

Zkus to udělat takto (snad se mi to podaří vysvětlit):

Ať skript zjistí co je objekt a co je "okolí".
Dejme tomu že to je světlý objekt co je na obrázku a okolí černé. A´t to pracuje na černoý a světlou nechá napokoji- zesvětlit pouze zleva dole třetí řádek. Myslím že výsledek bude lepší.

Na něco jsem si vzpoměl, četl jsem někde článek o zvětšování fotografií na principu toho, že se pořídí sekvence spousty fotografií ze stativu s ruční spouští nebo pomalejší sekvencí, aby mezi jednotlivými fotkami byly nepatrné rozdíly (nepatrný pohyb stativu, pohyb listí na stromech větrem). Zvětšení fotografií a interpolace pak byly provedeny právě na základě rozdílů mezi jednotlivými fotografiemi, kdy se dosahovalo lepších výsledků než při normálním zvětšení. Takže ten dotaz zase až taková blbost být nemusí.
Bohužel, bohužel - tehdy jsem tomu moc pozornosti nevěnoval, a dnes to už nedokážu vyhledat. Může to být tak rok až dva dozadu nevím jestli anglicky nebo česky. Není to sice přímo vylepšení fotografií z méně kvalitních na lepší, ale co se týče interpolace, takový algoritmus z několika snímků něco "vylepšit" možný je.

Zpět do poradny Odpovědět na původní otázku Nahoru