Zobacz pełną wersję : Ostrzenie zdjęć - wtyczka z nowym algorytmem.
Udało mi się poczynić wtyczkę do programu Paint.NET (http://www.getpaint.net/) (do PS-a nie potrafię), dedykowaną do ostrzenia zdjęć, zmniejszonych na potrzeby prezentacji w sieci, itp. Zastosowany algorytm, został zoptymalizowany pod kątem ostrzenia bardzo drobnych detali, przy maksymalnym ograniczeniu efektu "halo", oraz zachowaniu antyaliasingu w obrazie.
Ważne jest, aby zdjęcie było zmniejszone algorytmem Bilinear (PS), lub [Best Quality] (Paint.NET).
Wtyczka do pobrania (http://www.mmj.pl/~snibisz/paint.net/SmartSharpen.zip).
Kilka przykładów ostrzenia.
https://forum.nikoniarze.pl/imgimported/2009/06/sharpen1-1.jpg
źródło (http://www.mmj.pl/~snibisz/paint.net/sharpen1.jpg)
https://forum.nikoniarze.pl/imgimported/2009/06/sharpen2-1.jpg
źródło (http://www.mmj.pl/~snibisz/paint.net/sharpen2.jpg)
https://forum.nikoniarze.pl/imgimported/2009/06/sharpen3-1.jpg
źródło (http://www.mmj.pl/~snibisz/paint.net/sharpen3.jpg)
Ciekawie to wygląda. Jest parę nieprzyjemnych "niespodzianek" np za oknem na 1 i na jaśniejszej trawie na 2.
Gałęzie na tle zachodzącego słońca wyglądają natomiast bardzo dobrze.
Ciekawie to wygląda. Jest parę nieprzyjemnych "niespodzianek" np za oknem na 1 i na jaśniejszej trawie na 2.
Gałęzie na tle zachodzącego słońca wyglądają natomiast bardzo dobrze.
Przykładowe ostrzenia zostały wykonane, przy maksymalnym poziomie wzmocnienia.
Można zmniejszyć siłę wzmocnienia, aby "niespodzianki" się nie pojawiały, jednak ja bym proponował je maskować, zamiast tracić ostrość całego obrazu.
Udało mi się wyeliminować, generowanie szumu przy silnym ostrzeniu.
Napiszcie proszę, co sądzicie o jakości zamieszczonych przykładów.
bardzo fajna wtyczka! gdybym tylko lubił Paint.net :smile: dałbyś radę zrobić coś takiego pod Gimpa 2?
bardzo fajna wtyczka! gdybym tylko lubił Paint.net :smile: dałbyś radę zrobić coś takiego pod Gimpa 2?
Myślę, że dałoby się zrobić taką wtyczkę dla Gimpa. Musiałbym tylko poczytać, jak się pisze wtyczki dla tego programu.
Nie używam wyżej wspomnianych programów, ale na pierwszy rzut oka algorytm wyostrza zbyt mocno (zbyt dużym promieniem?), ponieważ z naturalnych nieostrości też są wydobywane na siłę szczegóły. Takie mam wrażenie, być może mylne. Trzeba by sie pobawić zdjęciami z małą głębią w tym celu. Zobaczyć jak wygląda sprawa portretów i np włosów. Ale do niektórych zastosowań (jeśli nawet nie do wszystkich), efekt wydaje się w miarę obiecujący. Pytanie główne jest raczej inne - a mianowicie, jak wypada porównanie zdjęcia wyostrzonego w ten sposób i ostrzonego w PSie. Może się okazać, że wtyczka nie ma zastosowania w PSie bo są tam użyte już te same bądź lepsze algorytmy.
Nie używam wyżej wspomnianych programów, ale na pierwszy rzut oka algorytm wyostrza zbyt mocno (zbyt dużym promieniem?), ponieważ z naturalnych nieostrości też są wydobywane na siłę szczegóły. Takie mam wrażenie, być może mylne. Trzeba by sie pobawić zdjęciami z małą głębią w tym celu. Zobaczyć jak wygląda sprawa portretów i np włosów. Ale do niektórych zastosowań (jeśli nawet nie do wszystkich), efekt wydaje się w miarę obiecujący. Pytanie główne jest raczej inne - a mianowicie, jak wypada porównanie zdjęcia wyostrzonego w ten sposób i ostrzonego w PSie. Może się okazać, że wtyczka nie ma zastosowania w PSie bo są tam użyte już te same bądź lepsze algorytmy.
Ostrzenie może być zbyt ostre, bo zostało wykonane przy maksymalnym współczynniku wzmocnienia - chodziło o pokazanie maksimum możliwości algorytmu.
Promień ostrzenia jest stały i wynosi 0.5px. Nie jest to jednak odpowiednik promienia w PS, bo tam wynosiłby on ok 0.1px.
Jeżeli chcesz porównać wyniki ostrzenia z PSem, to zawsze możesz to zrobić. Musisz jedynie wyostrzyć lewą część, zamieszczonych przeze mnie obrazów. Jeżeli przeszkadza Ci format jpg, to służę obrazami zapisanymi w formacie bezstratnym.
Dodałem do algorytmu, kontrolę poziomu podbicia jasności pikseli. Pozwoliło to pozbyć się przepaleń, pojedynczych pikseli w obrazie.
ściągnąłem Paint.net ( kurcze, zdaje się być bardzo przyjemny soft) i poddałem Twoją wtyczkę morderczej próbie. wygrzebałem z szuflady płytę ze skanami Ilforda Delty 3200, żeby sprawdzić jak reaguje z ziarnem. no i do tego się nie nadaje :smile: (1. sharpen domyślny Paint.net, 2.Twój algorytm) widac za to zaletę tego algorytmu, nie zmienia kontrastu zdjęcia. IMHO bardzo przydatny jeśli mamy drobne szczegóły i kudosy dla Ciebie, ale trzeba uważać bo gdy przesadzimy to tworzy delikatną kaszkę.
https://forum.nikoniarze.pl//brak.gif
źródło (http://img208.imageshack.us/img208/1165/66728199.jpg)
https://forum.nikoniarze.pl//brak.gif
źródło (http://img208.imageshack.us/img208/4770/33008635.jpg)
ściągnąłem Paint.net ( kurcze, zdaje się być bardzo przyjemny soft) i poddałem Twoją wtyczkę morderczej próbie. wygrzebałem z szuflady płytę ze skanami Ilforda Delty 3200, żeby sprawdzić jak reaguje z ziarnem. no i do tego się nie nadaje :smile: (1. sharpen domyślny Paint.net, 2.Twój algorytm) widac za to zaletę tego algorytmu, nie zmienia kontrastu zdjęcia. IMHO bardzo przydatny jeśli mamy drobne szczegóły i kudosy dla Ciebie, ale trzeba uważać bo gdy przesadzimy to tworzy delikatną kaszkę.
Widzę, że bardzo optymistycznie podszedłeś do tematu, ale temu kotkowi to już chyba nic nie pomoże ;-)
Algorytm był projektowany pod kątem usuwania nieostrości, powstałych po zmniejszeniu zdjęcia. Ze względu na to, że algorytm operuje na bardzo małym promieniu, nie nadaje się on do usuwania większych nieostrości.
ano zmniejszyłem je przy okazji...dwukrotnie :smile: żeby było śmieszniej, to tam jest ostrość. zdjęcie jakie jest każdy widzi, ale na dobrych przykładach to żadna sztuka. jak mi wpadną jakieś nowe zdjęcia to potestuję bo mi się podoba nie inwazyjność tego algorytmu.
ano zmniejszyłem je przy okazji...dwukrotnie :smile: żeby było śmieszniej, to tam jest ostrość. zdjęcie jakie jest każdy widzi, ale na dobrych przykładach to żadna sztuka. jak mi wpadną jakieś nowe zdjęcia to potestuję bo mi się podoba nie inwazyjność tego algorytmu.
Można także obrabiać "złe" przykłady ;-)
Oryginał (http://www.flickr.com/photos/wheatfields/846544785/sizes/o/) po zmniejszeniu.
https://forum.nikoniarze.pl/imgimported/2009/06/sharpen4-2.jpg
źródło (http://www.mmj.pl/~snibisz/paint.net/sharpen4.jpg)
Zszedłem z promieniem do 0,25px i chyba sięgnąłem ideału.
Algorytm nie generuje praktycznie żadnych obwódek, nie występują przepalenia pikseli a ostrość jest jak brzytwa.
Niestety, coś za coś i algorytm działa dwa razy wolniej.
Wtyczka została zaktualizowana i jest dostępna do pobrania.
Krytyczne uwagi mile widziane.
No i nic nie chcecie napisać - szkoda.
Gdybyście jednak chcieli zobaczyć, jak wygląda antyaliasing na subpikselach LCD, to uzupełniłem przykłady o takie wersje. Antyaliasing nie jest może idealny, bo został dodany już po zmniejszeniu fotek, ale i tak prezentuje się całkiem nieźle.
Trochę się pobawiłem... Przynajmniej wiem, co Cię skusiło by go napisać. Domyślny algorytm w tym programie nie jest rewelacyjny delikatnie mówiąc.
A co do Twojego plugina:
Pierwsze co się rzuca w oczy to powolność. Wraz ze sporą nieprzewidywalnością praktycznie kładzie to plugin, chyba, że go przyspieszysz tak 100-krotnie mniej więcej. Druga rzecz, to jego agresywność. Ma tendencję do robienia "małych szczegółów" przy niemalże każdej możliwości. Testy na sierści psów pokazały, że trzeba się z nim bardzo ostrożnie obchodzić. Tym samym eksperymentowanie z poziomem wyostrzania trwa wieki. A sprzęt mam bardzo mocny, więc mogę sobie tylko wyobrazić jakby to wyglądało na starszych komputerach. I to przy małych obrazkach!
Sam algorytm jest całkiem całkiem, ale nie jest uniwersalny. Przynajmniej nie w najmocniejszej postaci. Z kilku eksperymentów wyszło mi, że już lekko wyostrzone po zmniejszeniu zdjęcia (innymi programami) mogę wyostrzać przy poziomie 2-5 (ale bardzo podobnie po samym zmniejszeniu w programie z tego co widze na szybko). Powyżej zaczyna się już robić "morka", czyli zbyt dużo malutkich szczególików. Szczególnie to widać na granicach światła i cienia, lub kontrastowych zmian kolorów, które nagle stają się zbyt widoczne, w stosunku do rozmiaru zdjęcia (wybacz brak terminologii fachowej, ale nie chcę przez ignorancję w błąd wprowadzić). Zbytnio uwypukla lokalne kontrasty - tak chyba można powiedzieć.
Wpływu antyaliasingu nie zauważyłem.
Generalnie potwierdziło się to co napisałem wcześniej. Algorytm ma potencjał, ma sens przy niskich ustawieniach, przy wysokich tylko do niektórych motywów. Zdecydowanie za wolny. Porównując do Lightrooma, denerwuje wspomniana drobnoziarnistość, której nawet przy promieniu 0.5 piksela w LR nie widać.
Algorytm rozkładają na łopatki oczy (które masakrycznie wyglądają wyostrzone), czy błyszczące usta, zatem do portretów pewnie wcale się nie nadaje (generalizując).
Pierwsze co się rzuca w oczy to powolność. Wraz ze sporą nieprzewidywalnością praktycznie kładzie to plugin, chyba, że go przyspieszysz tak 100-krotnie mniej więcej.
Kod plugina nie zawiera żadnych optymalizacji i dlatego tak wlecze się z obliczeniami. Z pewnością kod można przyspieszyć, co najmniej z dziesięć razy.
Druga rzecz, to jego agresywność. Ma tendencję do robienia "małych szczegółów" przy niemalże każdej możliwości. Testy na sierści psów pokazały, że trzeba się z nim bardzo ostrożnie obchodzić.
Cel jaki mi przyświeca, to wyciągnięcie maksimum informacji z obrazu. Takie podejście jest dobre w przypadku ostrzenia małych fotek, zawierających wiele szczegółów. Niestety, agresywne ostrzenie na poziomie pojedynczych pikseli, niesie za sobą bardzo nieprzyjemny efekt - aliasing.
Algorytm nie jest w stanie arbitralnie stwierdzić, gdzie aliasing jest dopuszczalny a gdzie nie - tego się automatycznie określić nie da (a przynajmniej ja na chwilę obecna nie potrafię). Pozbycie się aliasingu z całego obrazu, spowoduje zaś znaczne tłumienie drobnych detali, co przełoży się na mniejsza ostrość obrazu. Oczywiście można wzmocnić obraz z zachowaniem antyaliasingu, ale spowoduje to pojawienie się efektu halo.
Sam algorytm jest całkiem całkiem, ale nie jest uniwersalny. Przynajmniej nie w najmocniejszej postaci. Z kilku eksperymentów wyszło mi, że już lekko wyostrzone po zmniejszeniu zdjęcia (innymi programami) mogę wyostrzać przy poziomie 2-5 (ale bardzo podobnie po samym zmniejszeniu w programie z tego co widze na szybko). Powyżej zaczyna się już robić "morka", czyli zbyt dużo malutkich szczególików. Szczególnie to widać na granicach światła i cienia, lub kontrastowych zmian kolorów, które nagle stają się zbyt widoczne, w stosunku do rozmiaru zdjęcia (wybacz brak terminologii fachowej, ale nie chcę przez ignorancję w błąd wprowadzić). Zbytnio uwypukla lokalne kontrasty - tak chyba można powiedzieć.
Wpływu antyaliasingu nie zauważyłem.
Algorytm tnie jak brzytwa. Wiem że to może przeszkadzać, ale nie bardzo wiem jak ten problem rozwiązać (jeżeli w ogóle się da). Jak zdecyduje się na większe wygładzanie krawędzi, to automatycznie tracę ostrość w drobnych detalach. Chcę mieć możliwość podkreślania bardzo drobnych detali, bo tym właśnie odróżnia się ten algorytm od innych.
Zastanawiam się tylko czy wada, jaką są ostre krawędzie z czasem nie będzie miała coraz mniejszego znaczenia. Biorąc pod uwagę rosnącą rozdzielczość wyświetlaczy, aliasing przeszkadzać będzie coraz mniej.
Na chwile obecną, aby zniwelować trochę ten problem, dodałem do algorytmu możliwość wygładzania krawędzi na subpikselach LCD. W wielu przypadkach, takie wygładzanie krawędzi wygląda całkiem dobrze.
Weźmy na ten przykład taką fotkę, ostrzoną na maksymalnych ustawieniach.
https://forum.nikoniarze.pl/imgimported/2009/06/sharpen5-1.jpg
źródło (http://www.mmj.pl/~snibisz/paint.net/sharpen5.jpg)
Generalnie potwierdziło się to co napisałem wcześniej. Algorytm ma potencjał, ma sens przy niskich ustawieniach, przy wysokich tylko do niektórych motywów. Zdecydowanie za wolny. Porównując do Lightrooma, denerwuje wspomniana drobnoziarnistość, której nawet przy promieniu 0.5 piksela w LR nie widać.
Algorytm rozkładają na łopatki oczy (które masakrycznie wyglądają wyostrzone), czy błyszczące usta, zatem do portretów pewnie wcale się nie nadaje (generalizując).
Ziarnistość można by kontrolować z poziomu użytkownika. Algorytm posiada parametr odpowiedzialny za siłę podbicia gradientu, ale w chwili obecnej parametr ten jest stały a dobrany został doświadczalnie.
Z pewnością, algorytm i tak nie nadaje się do każdego typu zdjęcia, bo tak jak to napisałem wcześniej, został zoptymalizowany pod kątem ostrzenia obrazu o wielu drobnych szczegółach.
To z czego się na początku ucieszyłem, czyli praktycznie całkowite wyeliminowanie efektu halo, pokazało swoje negatywne skutki w postaci dużego aliasingu. Do zalet zaś można zaliczyć bardzo dużą kontrolę kontrastu, przez co nie występuje efekt wyżarzania pikseli przy silnym ostrzeniu.
Dziękuję Ci za konstruktywne uwagi.
Zredukowałem lokalny kontrast i poprawiło się wygładzanie krawędzi. Wygląda to znacznie lepiej.
Zmodyfikowałem algorytm.
Udało mi się zredukować większość generowanego szumu, dzięki czemu algorytm nadaje się już praktycznie do każdego typy zdjęć.
Zoptymalizowałem algorytm, przez co znacznie zwiększyła się jego wydajność.
Poniżej przykład ostrzenia portretu (maksymalna siła wzmocnienia).
https://forum.nikoniarze.pl/imgimported/2009/06/sharpen7-1.jpg
źródło (http://www.mmj.pl/~snibisz/paint.net/sharpen7.jpg)
Link (http://www.flickr.com/photos/fadeevbiz/2776926433/sizes/o/in/photostream/) do oryginału.
Zaktualizowana wtyczka do pobrania (http://www.mmj.pl/~snibisz/paint.net/SmartSharpen.zip).
witam ciekawy plugin a z NX działało by ????????
witam ciekawy plugin a z NX działało by ????????
Wtyczka działa jedynie z programem Paint.NET. Na chwilę obecną tylko z tym programem, gdyż wtyczki do niego przeznaczone, łatwo się tworzy oraz testuje.
Prawdopodobnie w najbliższym czasie, stworzę taką wtyczkę także dla GIMP-a.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.