#python #scikit-image
#python #scikit-изображение
Вопрос:
Это мой код:
from skimage import io,color
filename = io.imread("input00.jpg")
img = color.rgb2gray(filename,as_grey=True)
io.imshow(img)
io.show()
Выдает ошибку в строке 2 со словами:
AttributeError: 'builtin_function_or_method' object has no attribute 'iterkeys'
Трассировка:
Traceback (most recent call last):
File "readImg.py", line 2, in <module>
filename = io.imread("input00.jpg")
File "/Library/Python/2.7/site-packages/skimage/io/_io.py", line 97, in imread
img = call_plugin('imread', fname, plugin=plugin, **plugin_args)
File "/Library/Python/2.7/site-packages/skimage/io/manage_plugins.py", line 209, in call_plugin
return func(*args, **kwargs)
File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9- intel.egg/matplotlib/pyplot.py", line 2198, in imread
return _imread(*args, **kwargs)
File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/image.py", line 1249, in imread
'more images' % list(six.iterkeys(handlers.keys)))
File "/Library/Python/2.7/site-packages/six-1.7.2-py2.7.egg/six.py", line 547, in iterkeys
return iter(d.iterkeys(**kw))
AttributeError: 'builtin_function_or_method' object has no attribute 'iterkeys'
Комментарии:
1. Не могли бы вы предоставить полную обратную трассировку?
2.
color.rgb2gray
не принимает никаких аргументов ключевого слова3. @PadraicCunningham: Даже без линии color.rgb2gray line это не работает.
4. как вы установили skimage?
5. Используя это: sudo pip install -U scikit-image Это есть в документации
Ответ №1:
у меня та же проблема. Решением было установить подушку (вы можете сделать это отсюда http://www.lfd.uci.edu /~голке/pythonlibs/#подушка)
Ответ №2:
Соответствующий бит кода, похоже,:
if ext not in handlers:
im = pilread(fname)
if im is None:
raise ValueError('Only know how to handle extensions: %s; '
'with PIL installed matplotlib can handle '
'more images' % list(six.iterkeys(handlers.keys)))
return im
Итак, я думаю, вы столкнулись с двумя проблемами.
(1) По какой-то причине (возможно, из-за отсутствия pillow?) вы не можете обрабатывать файлы jpg.
(2) В нем ошибка matplotlib
, поэтому сообщение об ошибке не выводится, потому что в нем есть ошибка. (!)
Вместо
>>> list(six.iterkeys(handlers.keys))
Traceback (most recent call last):
File "<ipython-input-13-2e5e3ad4f63f>", line 1, in <module>
list(six.iterkeys(handlers.keys))
File "/usr/local/lib/python2.7/dist-packages/six.py", line 490, in iterkeys
return iter(getattr(d, _iterkeys)(**kw))
AttributeError: 'builtin_function_or_method' object has no attribute 'iterkeys'
они должны были использовать
>>> list(six.iterkeys(handlers))
['png']
и передал handlers
словарь напрямую.
Комментарии:
1. У меня не установлена подушка. Я пытаюсь установить его, но он выдает некоторую ошибку.
Ответ №3:
Эта проблема также возникает в моем проекте. Мое решение — сначала удалить Pillow ( sudo apt-get remove python-pil
; конечно, если вы не установили Pillow, пожалуйста, сначала установите его, а затем протестируйте), затем переустановите Pillow ( sudo apt-get install python-pil
), и проблема решена!