skimage.color.rgb2gray导入麻烦

skimage.color.rgb2gray import trouble

我在导入 skimage.color 模块时遇到问题。虽然我可以从 python shell 导入和调用 skimage.color.rgb2gray,但我无法从我的应用程序中执行相同的操作。

我检查了我电脑上的 skimage 个库位置。他们似乎都很好。但是当我尝试调用 skimage.color 时。从我的代码中它总是给我这个

Traceback (most recent call last):
File "main-video2.py", line 44, in <module>
image = color.rgb2gray(image)

我检查了这样的模块

username@ubuntu:~/dev/computer_vision$ python 
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 >>> 
 KeyboardInterrupt
 >>> from skimage import color 
 >>> color 
 <module 'skimage.color' from '/usr/local/lib/python2.7/dist-packages/skimage/color/__init__.pyc'>

任何人都可以帮助我理解为什么我可以从 shell 调用它而不是从我的代码调用它的原因是什么?

我有一个替代品给你。您可以使用以下代码将 rgb 图像转换为灰色:

# libraries
import cv2
import Image

# reading an image
image = cv2.imread(path_to_image)

# converting into gray image
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# saving image
Image.fromarray(gray_image).save(save_path)

我认为您的 PC 上没有安装其他库。检查 THIS PAGE 并验证您是否拥有 运行 时间应用程序所需的库。

此错误的原因是因为尽管 skimage 包可能存在并可用(在 python shell 中),但您将无法 运行 任何应用程序没有其他提到的包的支持,如:matplotlibscipypilnumpysix

访问 link 到 install/update 所需的包。

如果您还有问题,请发表评论。 :)

如果您使用的是anaconda,重启内核有助于解决问题。该错误是由于 skimage.color 包本身内的循环导入造成的。 在常规代码中,尝试 from skimage.io import imshow。为我节省了大量时间 More on the subject