Próbuję odczytać obraz za pomocą scipy. Jednak nie przyjmuje scipy.misc.imread
części. Co może być przyczyną tego?
>>> import scipy
>>> scipy.misc
<module 'scipy.misc' from 'C:\Python27\lib\site-packages\scipy\misc\__init__.pyc'>
>>> scipy.misc.imread('test.tif')
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
scipy.misc.imread('test.tif')
AttributeError: 'module' object has no attribute 'imread'
scipy.__version__
daje0.9.0
mi i nie mogę odtworzyć twojego problemufrom scipy.misc import imread
, a następnieimread('test.tif')
?imread
został uznany za przestarzały w SciPy 1.0.0 i został usunięty w wersji 1.2.0. Użyjimageio.imread
zamiast tego.Odpowiedzi:
Musisz zainstalować Pillow (dawniej PIL ). Od docs na
scipy.misc
:Po zainstalowaniu Pillow mogłem uzyskać dostęp
imread
w następujący sposób:źródło
<PngImagePlugin.PngImageFile...
imageio
niescipy.imageio
.imread
jest przestarzałe w SciPy 1.0.0 i zostanie usunięte w 1.2.0. Użyjimageio.imread
zamiast tego.źródło
imresize
. Wcześniejscipy.misc.imresize
działa. Teraz jest przestarzały i gdzie znajdę alternatywę?imread jest przestarzały po wersji 1.2.0! Aby rozwiązać ten problem, musiałem zainstalować wersję 1.1.0.
źródło
imageio
już dostępna.W przypadku Pythona 3 najlepiej używać
imread
wmatplotlib.pyplot
:źródło
Jeśli ktoś napotka ten sam problem, odinstaluj scipy i zainstaluj scipy == 1.1.0
źródło
Potrzebujesz biblioteki Python Imaging Library (PIL), ale niestety! wydaje się, że projekt PIL został porzucony. W szczególności nie został przeniesiony do Pythona 3. Więc jeśli chcesz mieć funkcjonalność PIL w Pythonie 3, dobrze zrobisz, jeśli użyjesz Pillow , który jest półoficjalnym rozwidleniem PIL i wydaje się być aktywnie rozwijany. Właściwie, jeśli w ogóle potrzebujesz nowoczesnej implementacji PIL, polecam Pillow. To tak proste, jak
pip install pillow
. Ponieważ używa tej samej przestrzeni nazw, co PIL, jest zasadniczo zamiennikiem typu drop-in.Jak „półoficjalny” jest ten widelec? możesz zapytać. Strona Informacje w dokumentach Pillow mówi tak:
Jednak ostatnie wydanie PIL na oficjalnej stronie PIL nosi datę 15 listopada 2009. Myślę, że możemy spokojnie ogłosić Pillow następcą PIL-u po (w chwili pisania tego tekstu) prawie ośmiu latach braku nowych wydawnictw. Więc nawet jeśli nie potrzebujesz wsparcia dla Pythona 3, sugeruję, abyś zrezygnował ze starej dystrybucji PIL 1.1.6 dostępnej w PyPI i po prostu zainstalował świeżą, aktualną i kompatybilną Pillow.
źródło
Zainstaluj bibliotekę Pillow, wykonując następujące polecenia:
Uwaga, wybrana odpowiedź jest nieaktualna. Zobacz dokumentację SciPy
źródło
Zgodnie z odpowiedzią misc.imread jest przestarzałe w SciPy 1.0.0 i zostanie usunięte w 1.2.0. imageio jest jedną z opcji, zwróci obiekt typu:
ale zamiast imageio użyj cv2
będę typu:
<class 'numpy.ndarray'>
Ponieważ tablice numpy są szybciej obliczane.
źródło
Imread używa biblioteki PIL, jeśli biblioteka jest zainstalowana użyj: "from scipy.ndimage import imread"
Źródło: http://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.ndimage.imread.html
źródło
To zadziałało dla mnie.
źródło
Potrzebujesz biblioteki obrazów Pythona ( PIL ), ale teraz sam PIL nie wystarczy, lepiej zainstaluj Pillow . To działa dobrze.
źródło
pillow
powinien być użyty zamiastPIL
. Nie sądzę, aby dodanie go jako odpowiedzi było złym pomysłem, ale byłoby o wiele bardziej przydatne, gdybyś wyjaśnił dlaczego. Dzięki.Po uruchomieniu następujących w notatniku Jupyter, miałem podobny komunikat o błędzie:
komunikat „błąd”:
I korzystając z poniższych rozwiązań, udało mi się to rozwiązać:
źródło
Mam wszystkie pakiety wymagane do wyodrębnienia obrazu na notebooku jupyter, ale nawet wtedy pokazuje mi ten sam błąd.
Błąd w notatniku Jupyter
Czytając powyższe komentarze, zainstalowałem wymagane pakiety. Powiedz, czy przegapiłem niektóre przesyłki.
źródło
Rozwiązanie, które działa dla mnie w Pythonie 3.6, jest następujące
źródło