IT

scipy.misc 모듈에 imread 속성이 없습니까?

lottoking 2020. 9. 15. 08:01
반응형

scipy.misc 모듈에 imread 속성이 없습니까?


scipy로 이미지를 개발하려고합니다. 그러나 그것은 scipy.misc.imread받아들이지 않습니다 . 그 원인은 무엇입니까?

>>> 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'

Pillow (이전 PIL ) 를 설치해야합니다 . 에서 워드 프로세서scipy.misc:

Pillow는 SciPy의 기능이 아래 목록에 이미지 조작은 SciPy없이 사용할 수 없습니다.

...

imread

...

Pillow를 설치 한 후 imread다음과 같이 액세스 할 수 있습니다 .

In [1]: import scipy.misc

In [2]: scipy.misc.imread
Out[2]: <function scipy.misc.pilutil.imread>

imreadSciPy 1.0.0에서 더 이상 사용하지 않는 것이 1.2.0에서 제거됩니다. 대신 사용하십시오 .imageio.imread

import imageio
im = imageio.imread('astronaut.png')
im.shape  # im is a numpy array
(512, 512, 3)
imageio.imwrite('imageio:astronaut-gray.jpg', im[:, :, 0])

imread는 버전 1.2.0 이후에 감가 상각! 따라서이 문제를 해결하기위한 버전 1.1.0을 설치해야합니다.

pip install scipy==1.1.0

사용하는 것이 가장 좋습니다 imreadmatplotlib.pyplot:

from matplotlib.pyplot import imread

Python Imaging Library (PIL)가 필요하지만 아쉽습니다! PIL 프로젝트는 포기한 것입니다. 특히 Python 3으로 포팅되지 않습니다. 따라서 Python 3에서 PIL 기능을 PIL 의 준공식 포크 인 Pillow를 사용 하는 것이 활활하게 개발되고있는 것이 좋네요. 실제로 최신 PIL 구현이 필요하다면 Pillow를 추천합니다. 간단합니다 pip install pillow. PIL과 동일한 네임 스페이스를 사용하는 방식으로 드롭 인 교체입니다.

이 포크는 어떻게 "반 공식"입니까? 물어볼 수 있습니다. Pillow 문서 정보 페이지는 다음과 같이 사실.

마지막 PIL 릴리스 이후 더 많은 시간이 지나면 새 PIL 릴리스의 가능성이 있습니다. 그러나 아직 공식“PIL is dead”발표를 듣지 자문. 그래도 PIL을 지원 비용으로 먼저 여기에서 문제를보고 한 다음 여기에서 해당 Pillow 티켓을여십시오.

업스트림 문제를 추적 할 수있는 첫 번째 티켓에 대한 링크를 제공하세요.

그러나 공식 PIL 사이트 의 가장 최근 PIL 릴리스 날짜는 2009 년 11 월 15 일입니다. 필자는 필로우를 (글을 쓰는 시점에서) 거의 8 년 동안 새 릴리스가없는 이후 PIL의 후계자로 안심하고 선포 할 수 있다고 생각합니다. 따라서 Python 3 지원이 필요하지 않는 것이 좋습니다. 고대 PIL 1.1.6 배포판을 피하고 새롭고 호환되는 최신 Pillow를 설치하는 것이 좋습니다.


다음 명령으로 Pillow 라이브러리를 설치하십시오.

pip install pillow

선택한 답변이 오래되었습니다. SciPy 문서보기

Pillow ( https://python-pillow.org/ )는 SciPy의 다음 목록에 이미지 조작 기능은 SciPy없이 사용할 수 없습니다.


동일한 문제가 발생하는 경우 scipy를 제거하고 scipy == 1.1.0을 설치하십시오.

$ pip uninstall scipy

$ pip install scipy==1.1.0

Imread는 PIL 라이브러리를 사용합니다. 라이브러리가 경우 "scipy.ndimage import imread"를 사용합니다.

출처 : http://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.ndimage.imread.html


python -m pip install pillow

이것은 나를 위해 일했습니다.


misc.imread는 SciPy 1.0.0에서 더 이상 사용하지 않았는데도 1.2.0에서 제거됩니다. imageio는 하나의 옵션이며 다음과 같은 유형의 객체를 반환합니다.

<class 'imageio.core.util.Image'>

그러나 imageio 대신 cv2를 사용하십시오.

import cv2
im = cv2.imread('astronaut.png')

im 유형은 다음과 가변합니다. <class 'numpy.ndarray'>

numpy 배열은 계산이 더 빠 사용합니다.


Jupyter 노트북에서 다음을 실행하면 비슷한 오류 메시지가 나타납니다.

from skimage import data
photo_data = misc.imread('C:/Users/ers.jpg')
type(photo_data)

'오류'메시지 :

D : \ Program Files (x86) \ Microsoft Visual Studio \ Shared \ Anaconda3_64 \ lib \ site-packages \ ipykernel_launcher.py : 3 : DeprecationWarning : imread더 이상 사용되지 않습니다! imreadSciPy 1.0.0에서 더 이상 사용되지 않으며 1.2.0에서 제거됩니다. imageio.imread대신 사용하십시오 . 이것은 ipykernel 패키지와는 별개이므로

그리고 다음을 사용하여 해결했습니다.

import matplotlib.pyplot
photo_data = matplotlib.pyplot.imread('C:/Users/ers.jpg')
type(photo_data)

파이썬 이미지 라이브러리 ( PIL ) 가 필요 하지만 이제 PIL만으로는 충분하지 않습니다 . Pillow를 설치하는 것이 좋습니다 . 이것은 잘 작동합니다.


jupyter 노트북에서 이미지 추출에 필요한 모든 패키지가 있지만 그래도 동일한 오류가 표시됩니다.

Jupyter 노트북 오류

위의 설명을 읽고 필요한 패키지를 설치했습니다. 내가 일부 패키지를 놓친 경우 알려주십시오.

pip3 freeze | grep -i -E "pillow|scipy|scikit-image"
Pillow==5.4.1
scikit-image==0.14.2

scipy==1.2.1

파이썬 3.6에서 나를 위해 작동하는 솔루션은 다음과 같습니다.

py -m pip 설치 Pillow

참고 URL : https://stackoverflow.com/questions/15345790/scipy-misc-module-has-no-attribute-imread

반응형