Krótko:
chcę zmienić rozdzielczość rastra i wygładzić szarą rampę, jak pokazano na poniższych zdjęciach. Preferowane jest użycie GDAL, PIL lub Numpy.
Opis: Za
pomocą High Performance Geostatistic Library dzielę punkty na rastry o rozdzielczości wyjściowej 20 metrów . Nie chcę zmieniać rozdzielczości wyjściowej, ponieważ czas interpolacji rośnie wykładniczo.
Przy tej rozdzielczości obraz wyjściowy jest brzydki (piksele i aliasy). Nie wiem, czy jest poprawny pod względem koncepcyjnym, ale chcę, aby obraz był gładszy jak w przykładzie poniżej. To coś w rodzaju „ponownej interpolacji” obrazu na obraz o lepszej rozdzielczości. Używam Pythona, więc moje preferencje to GDAL, Python Imaging Library lub Numpy. Odpowiedź może być teoretyczna, na przykład wskazanie nazwy algorytmu lub koncepcji tego rodzaju operacji.
Źródło:
Miejsce docelowe:
EDYCJA Wyniki z splajnem sześciennym gdalwarp:
Odpowiedzi:
1) Trudny sposób: przy odrobinie kodowania jest (względnie) łatwy do wdrożenia interpolację dwuliniową, aby uzyskać przyzwoite ponowne próbkowanie.
2) Prosty sposób: użyj GDAL, jak wyjaśniono w poprzednim poście GISSE , ale w odwrotnej kolejności (zmniejszając rozmiar pikseli).
źródło
Użyj GDALReprojectImage , który jest dostępny w Pythonie:
Do płynnej interpolacji użyj metod dwuliniowych lub sześciennych. Ta funkcja jest niewygodna, ponieważ nie przyjmuje argumentów słów kluczowych, dlatego musisz znaleźć pozycję:
Prawdopodobnie trudną częścią jest konfiguracja
dst_ds
, która musi mieć geotransformę podobną dosrc_ds
, ale ze zmodyfikowanymi rozmiarami komórek.źródło
GRA_CubicSpline
(spróbuj tego najpierw) vs.GRA_Cubic
(splot).Aby wygładzić zmiany, potrzebujesz filtra dolnoprzepustowego. Możesz napisać własny, używając GDAL, lub jeden używa GRASS. Nie próbowałem tego, ale oto przewodnik http://wiki.awf.forst.uni-goettingen.de/wiki/index.php/Exercise_31
Przed zastosowaniem filtra dolnoprzepustowego możesz najpierw próbkować w górę rastra, aby uzyskać lepszą rozdzielczość wyjściową.
źródło
możesz użyć filtra ranga / mediana o promieniu = 5, tzn. rozmiar jądra = 11, (dla każdego kanału rgb).
źródło