Niedawno natknąłem się na problem, który wymaga przynajmniej podstawowego stopnia przetwarzania obrazu, czy mogę to zrobić w Pythonie, a jeśli tak, to z czym?
Odpowiedzi:
Najbardziej znaną biblioteką jest PIL . Jeśli jednak wykonujesz po prostu podstawowe operacje, prawdopodobnie lepiej będzie Ci posłużyć się powiązaniami Pythona dla ImageMagick , które będą o wiele bardziej wydajne niż pisanie transformacji w Pythonie.
W zależności od tego, co rozumiesz przez „przetwarzanie obrazu”, lepszym wyborem mogą być biblioteki oparte na numpy: mahotas , scikits.image lub scipy.ndimage . Wszystko to działa w oparciu o tablice numpy, więc możesz mieszać i dopasowywać funkcje z jednej biblioteki i drugiej.
Założyłem stronę http://pythonvision.org, która zawiera więcej informacji na ich temat.
scikit-image
jest teraz hostowany na scikit-image.org
scipy.ndimage
link jest martwy. Aktualny link, najprawdopodobniej: scipy.github.io/devdocs/tutorial/ndimage.html
Masz również podejście do przetwarzania obrazu w oparciu o „standardowe” moduły naukowe: SciPy ma cały pakiet poświęcony przetwarzaniu obrazu: scipy.ndimage . Scipy jest w efekcie standardowym pakietem do ogólnych obliczeń numerycznych; jest on oparty na de facto standardowym module manipulacji tablicami NumPy : obrazy mogą być również przetwarzane jako tablice liczb. Jeśli chodzi o wyświetlanie obrazów, Matplotlib (również część „trylogii naukowej”) sprawia, że wyświetlanie obrazów jest dość proste .
SciPy jest nadal aktywnie utrzymywane, więc jest to dobra inwestycja na przyszłość. Ponadto SciPy działa obecnie również z Pythonem 3, podczas gdy Python Imaging Library (PIL) nie.
import scipy
bez instalacji PIL ( import Image
nie udaje się ImportError
).
Aby uzupełnić listę: opencv http://opencv.willowgarage.com/documentation/python/index.html
W rzeczywistości istnieje wspaniała biblioteka obrazowania języka Python (PIL) . Daje możliwość modyfikowania istniejących obrazów, w tym funkcji antyaliasingu, oraz tworzenia nowych obrazów z tekstem i tym podobnymi. Przyzwoity samouczek wprowadzający można również znaleźć w podręczniku PIL znajdującym się na wspomnianej stronie.
Jeśli tworzysz niestandardowy efekt przetwarzania obrazu, przydatny może być PythonPixels. http://halfhourhacks.blogspot.com/2008/03/pythonpixels.html Jest przeznaczony do pisania i eksperymentowania z przetwarzaniem obrazów.
VIPS powinien być szybki i wykorzystywać wiele procesorów:
https://github.com/libvips/libvips/wiki/Speed-and-memory-use