PDA

Zobacz pełną wersję : Zmiana wielkości obrazu a jego jakość !!!!



xxkomarxx
30-03-2008, 12:15
Witam chciałbym poryszyć pewien problem.
Mianowicie chodzi mi tu o szeroko rozumianą jakość obrazu. Otóż gdy wykonuje zdjęcie (przyjme tu dla lepszego pokazania efektu aparat o rozdzielczości ok 2 mpx) jest ono zapisywane w pewnej rozdzielczości na pewnych pixelach matrycy ale gdy to samo zdjecie przerzuce na komputer i wyswietle na monitorze to tam sa juz zupelnie inne pixele i zdjecie mowiac delikatnie wyglada słabo.
Chciałbym zapytać co jest przyczyną tego zjawiska i jak to naprawić.
Wiem że są programy i służace do poprawy jakośći tego stanu rzeczy(photo zoom).

Gdy zdejmę kolor z obrazu to manipulując np krzywymi itd okazuje się że moge bardziej lub mniej zmienić rozdzielczość zachowując godną jakość.
Chodzi o to że pixele bardziej lub mniej wyróżniaja sie od pozostałych.

Bardzo prosze osoby znające się na tym zagadnienu o opisaniu zjawiska utraty tej jakości i sposobów jej naprawy bardziej fachowo. Z góry dziękuję za pomoc.

Wskazania do pewnej literatury też będą pomocne.

Janusz Body
30-03-2008, 12:36
...
Chciałbym zapytać co jest przyczyną tego zjawiska i jak to naprawić.....

Na ekranie komputera zwykle jest mniej pikseli niż na matrycy aparatu więc oglądasz obraz zagęszczony. Taki obraz powinien być lepszy niż w wielkości 100% (pixel na matrycy ---> pixel na ekranie). Jeśli jest niedobry to... przyczyn moze być milion i trochę. Jakiś przykład może? (zdjecia można umieszczać tu: http://imageshack.us/)

xxkomarxx
30-03-2008, 12:36
Wracając do tematu.

Tylu ludzi posługuje sie terminem jakość obrazu. Co to jest ta jakość jak ją zmierzyć i porownać???

Zapraszam wszystkich co mają coś do powiedzenia w tej sprawie.
!!! Łączenie podwójnego wpisu !!!
Januszu chodzi mi generalnie o jakość podczas powiększania obrazu.
Gdy mocno go powiększymy widzimy wyraźnie wszystkie pixele. Chodzi mi o usunięcie tego zjawiska mając do dyspozycji ten wycinek całośći.
Przykładowo robie zdjęcie w małej rozdzielczośći a potem go powiększam.
Wyrażnie widać wszystkie pixele.
Więc zaczynam programowowo go obrabiać stosując algorytmy interpolacyjne które sprawdzają pixele i ustawiają je wg barwy np 4 otaczających go pixeli.

Janusz Body
30-03-2008, 12:46
Wracając do tematu.

Tylu ludzi posługuje sie terminem jakość obrazu. Co to jest ta jakość jak ją zmierzyć i porownać???

Zapraszam wszystkich co mają coś do powiedzenia w tej sprawie.


Powodzenia :mrgreen:



Januszu chodzi mi generalnie o jakość podczas powiększania obrazu.
Gdy mocno go powiększymy widzimy wyraźnie wszystkie pixele. Chodzi mi o usunięcie tego zjawiska mając do dyspozycji ten wycinek całośći.
Przykładowo robie zdjęcie w małej rozdzielczośći a potem go powiększam.
Wyrażnie widać wszystkie pixele......

Żądasz rzeczy niemożliwych. Jak informacji nie ma to nie można jej wyświetlić. Kropka. Koniec. Piksel jest najmniejszą jednostką informacji w zdjęciu. Pixel powiększony do np. 16 pixeli na ekranie dalej będzie się jawił jako jeden piksel (kwadrat).

Można powiększać "wygładzając" nieco piksele. Do tego naj... są fractale. http://www.ononesoftware.com/detail.php?prodLine_id=2
ale cudów spodziewać się nie należy. Cudów nie ma i nie chce być inaczej.

xxkomarxx
30-03-2008, 12:52
Dokładnie chodzi mi o to zjawisko wygładzania.

Czyli poprawy jakości po powiększeniu.
Chciałbym dowiedzieć się wszystkiego na ten temat.

tu jest przykładowy obraz.
http://img149.imageshack.us/img149/1156/obrazqs4.png

chodzi tu o zjawisko super-resolution

RNz
30-03-2008, 12:53
xxkomarxx napisz trochę jaśniej o co ci chodzi, bo nie mogę załapać sensu.
Chcesz powiekszyć obraz poprzez interpolację zachowując, lub wręcz poprawiając jakość?

Janusz Body
30-03-2008, 12:53
....
Chciałbym dowiedzieć się wszystkiego na ten temat.
....

Hihihihi....

http://www.ononesoftware.com/detail.php?prodLine_id=2


Edit:
To zdjęcie co zamieściłeś to po prostu jest odszumione.

http://img149.imageshack.us/img149/1156/obrazqs4.png
tj. to z prawej jest odszumione.

xxkomarxx
30-03-2008, 12:55
xxkomarxx napisz trochę jaśniej o co ci chodzi, bo nie mogę załapać sensu.
Chcesz powiekszyć obraz poprzez interpolację zachowując, lub wręcz poprawiając jakość?

Zdjęcie powiększam a potem wygładzam poprzez algorytmy interpolacyjne

Janusz Body
30-03-2008, 12:58
Zdjęcie powiększam a potem wygładzam poprzez algorytmy interpolacyjne

Algorytmy czysto "interpolacyjne" są dobre do powiększeń rzędu 1.2 może 1.5 - dobre to za dużo powiedziane bo efekty są bardziej niż mizerne. Więcej raczej tylko fraktalami.

Jak w zdjęciu nie ma INFORMACJI to tylko domalować se można.

RNz
30-03-2008, 13:17
Tak jak napisał Janusz nie jest możliwe, by komputer (najwet najszybszy, najwiekszy i najlepszy) wiedział CO MA DODAĆ w miejsce interpolowanych pikseli. Możesz powiekszyć fotkę w PS i sam zobacz co się dzieje. Po przekorczeniu 50% powiekszenia zabawa traci sens.
Jeżeli już musisz powiekszać, to lepiej kilka razy małymi krokami, niż raz a dużo.

xxkomarxx
30-03-2008, 13:43
Nie wiem czy tak do końca komputer nie będzie wiedział co dodać gdyż np algorytm najbliższy pixel kopiuje całe grupy pixeli. Inny sprawdza kolory sąsiadujących pixeli i nadaje im barwe która mniej się odróznia co w ogólnym widzeniu sprawai żę nie widać tzw schodków

Toffic
30-03-2008, 16:49
....Inny sprawdza kolory sąsiadujących pixeli i nadaje im barwe która mniej się odróznia co w ogólnym widzeniu sprawai żę nie widać tzw schodków

Jak również detali i szczegółów, bo i skąd mają się pojawić. Chyba że chodzi nam o miękkie (rozmydlone) powiększenie.

Czacha
30-03-2008, 17:15
Jesli cos ma wartosc 0, to nijak nie zrobi sie z tego 1. Oprogramowanie samo sobie nie dopisze czegos, czego tam nie ma. Kombinowanie niczym kon pod gore nic nie da :)

Bahrd
30-03-2008, 17:52
Nie wiem czy tak do końca komputer nie będzie wiedział co dodać gdyż np algorytm najbliższy pixel kopiuje całe grupy pixeli. Inny sprawdza kolory sąsiadujących pixeli i nadaje im barwe która mniej się odróznia co w ogólnym widzeniu sprawai żę nie widać tzw schodków

Spytam jak w starym dowcipie: Kolega chce się dowiedzieć, czy powymądrzać? ;)
Sporo wskazówek już dostałeś, więc ja pozwolę sobie na krótką syntezkę...

Skalowanie obrazów opiera się na interpolacji (czyli wymyśleniu, co ma być pomiędzy punktami, które znamy). Innymi słowy jest to sztuka umiejętnego oszukiwania (w dziedzinie obrazów można to nazwać sztuką iluzji).
Teoria interpolacji ma trochę ponad pół wieku. W tym czasie tęgie głowy wymyśliły sporo - nie sposób więc przedstawić wszystkiego. Podane przez Ciebie przykłady, to odmiany interpolacji "splajnowej", prostej i w zamyśle, i w działaniu. No niestety, jak już zauważono wyżej, możesz uzyskać za jej pomocą albo gładkie przejścia tonalne, albo ostre krawędzie.
Zaryzykuję i powiem, że główna trudność polega na pogodzeniu elegancji formalnej (ładne i proste wzory dające w wyniku proste i szybkie algorytmy) z elegancją praktyczną (czyli, czy nam się efekt końcowy podoba, czy nie).
Prace trwają na całym świecie...


Jesli cos ma wartosc 0, to nijak nie zrobi sie z tego 1.

Jakby "na chama" zanegował "0", to dostanie "1" ;)



Kombinowanie niczym kon pod gore nic nie da :)

Nie podcinaj mi gałęzi, plssss... ;)

xxkomarxx
31-03-2008, 09:58
Nie chodzi o wymądrzanie się na forum bo nie po to to jest.
Po prostu chciałem się czegoś więcej dowiedzieć na ten temat.
Tak jak zostało już napisane chodzi o oszukanie i zmyślne wstawienie brakujących informacji pomiędzy punkty tak żeby obraz wyglądał lepiej mając do dyspozycji sprzęt o słabych możliwościach zapisowych.

Dziękuje wszystkim za udzielone informacje.

Janusz Body
31-03-2008, 10:16
... chodzi o oszukanie i zmyślne wstawienie brakujących informacji pomiędzy punkty ....

Naprawdę się nie da. Chyba, że program w stylu www.wróżka.pl ;)

Zdjecia z Twojego przykładu to efekt odszumiania a nie powiększania. W odszumianiu też jest sporo interpolacji i wygładzania obrazu.

Bahrd
31-03-2008, 19:11
Nie chodzi o wymądrzanie się na forum bo nie po to to jest.
Po prostu chciałem się czegoś więcej dowiedzieć na ten temat.
Tak jak zostało już napisane chodzi o oszukanie i zmyślne wstawienie brakujących informacji pomiędzy punkty tak żeby obraz wyglądał lepiej mając do dyspozycji sprzęt o słabych możliwościach zapisowych.

Dziękuje wszystkim za udzielone informacje.

Uwierz, że Twoje pytanie nie są "niewinne", a stąd odpowiedź na nie złożona. Nie ma jednego algorytmu skalowania - przykładowo, do powiększeń można stosunkowo bezpiecznie zastosować splajny liniowe (bi-linear) czy sześcienne (bi-cubic), ale już, żeby pomniejszyć i nie ryzykować pojawienia się mory, trzeba obraz uprzednio "wygładzić".

Inny przykład: istnieje szereg trików pod nazwą super-resolution, dzięki której można uzyskać większą rozdzielczość niż prawdziwa ("natywna") rozdzielczość matrycy.
Jak już pisałem pomysłów i algorytmów jest bez liku, niektóre (te lepsze, bo uwzględniające m.in. fizjologię ludzkiego wzroku i charakterystykę urządzeń wyjściowych) są zwykle opatentowane.
Najlepiej wygooglać sobie trochę za pomocą słów kluczowych: spline interpolation, image restoration, sharpening, demosaicking, super-resolution, i tak dalej - wstępnych opracowań w tej dziedzinie jest cała masa.
Po polsku literatura też jest, ale rzadko bezpośrednio odnosi się do obrazów - raczej oferuje się temat interpolacji podany more mathematico ;)