2012-09-18 17 views
7

Używam funkcji imshow z interpolation='nearest' na obrazie w skali szarości i otrzymuję w efekcie ładne kolorowe zdjęcie, wygląda na to, że robi dla mnie jakąś segmentację kolorów, co dokładnie się tam dzieje?Co robi matplotlib `imshow (interpolacja =" najbliższa ")`?

Chciałbym otrzymać coś podobnego do przetwarzania obrazu, czy jest tam jakaś funkcja na niezliczonych tablicach, takich jak interpolate('nearest')?

EDIT: Proszę mnie poprawić, jeśli się mylę, to wygląda to robi proste grupowanie pikseli (klastry są kolory analogicznym colormap) i słowo „najbliższy” mówi, że ma najbliższy kolor colormap (prawdopodobnie w przestrzeni RGB), aby zdecydować, do którego klastra należy piksel.

+0

Zobacz tę odpowiedź: http://stackoverflow.com/questions/14722540/smoothing-between-pixels-of-imagesc-imshow-in-matlab-like-the-matplotlib-imshow/14728122#14728122 – jojo

Odpowiedz

12

interpolation='nearest' po prostu wyświetla obraz bez prób interpolacji między pikselami, jeśli rozdzielczość wyświetlania nie jest taka sama jak rozdzielczość obrazu (co najczęściej ma miejsce). Spowoduje to wyświetlenie obrazu, w którym piksele są wyświetlane jako kwadrat z wielu pikseli.

Nie ma zależności między interpolation='nearest' a obrazem w skali szarości wyświetlanym w kolorze. Domyślnie imshow używa mapy kolorów jet do wyświetlania obrazu. Jeśli chcesz, aby był wyświetlany w odcieniach szarości, wywołaj metodę gray(), aby wybrać szarą mapę kolorów.

+0

Dzięki za komentarz na temat colormap! Doprowadziło mnie to we właściwym kierunku. – Alex