我正在尝试使用Python中的图像来处理我正在进行的项目。
这是我第一次使用Python进行编程,但我还没有找到一个处理我面临的问题的教程。
我正在尝试不同的图像分解,我想将一些变量A
定义为指定文件夹中的一组图像。基本上我正在寻找Python的Matlab模拟imread
。
经过一段时间的谷歌搜索后,我找到了许多解决方案,但由于某些原因,似乎没有一个解决方案。
例如,甚至这个简单的代码
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('messi5.jpg',0)
应该工作的(取自http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_gui/py_image_display/py_image_display.html)会产生错误“没有名为cv2的模块”。
为什么会这样?我该如何阅读图像?
我尝试的另一件事是
import numpy as np
import skimage.io as io
A=io.imread('C:\Users\Oria\Desktop\test.jpg')
io.imshow(A)
产生错误“SyntaxError :( unicode error)'unicodeescape'编解码器无法解码位置2-3中的字节:截断\ UXXXXXXXX转义”
我想要做的就是能够从指定的文件夹中读取图像,不应该很难...还应该注意我使用的数据库是ppm文件。所以我想阅读并显示ppm图像。
编辑:我的环境是Pyzo。如果它对任何事情都很重要。
Edit2:将反斜杠更改为正斜杠会将错误更改为
Traceback (most recent call last):
File "<tmp 1>", line 3, in <module>
A=io.imread('C:/Users/Oria/Desktop/test.jpg')
File "F:\pyzo2015a\lib\site-packages\skimage\io\_io.py", line 97, in imread
img = call_plugin('imread', fname, plugin=plugin, **plugin_args)
File "F:\pyzo2015a\lib\site-packages\skimage\io\manage_plugins.py", line 209, in call_plugin
return func(*args, **kwargs)
File "F:\pyzo2015a\lib\site-packages\matplotlib\pyplot.py", line 2215, in imread
return _imread(*args, **kwargs)
File "F:\pyzo2015a\lib\site-packages\matplotlib\image.py", line 1258, in imread
'more images' % list(six.iterkeys(handlers.keys)))
File "F:\pyzo2015a\lib\site-packages\six.py", line 552, in iterkeys
return iter(d.keys(**kw))
AttributeError: 'builtin_function_or_method' object has no attribute 'keys'
答案 0 :(得分:1)
与Matlab的imread最接近的类似物是scipy.misc.imread,是scipy包的一部分。我会把这段代码写成:
import scipy.misc
image_array = scipy.misc.imread('filename.jpg')
现在提出更广泛的问题。这看起来很难的原因是因为你来自Matlab,它使用了不同的哲学。 Matlab是一个单片安装,开箱即用,具有大量功能。 Python是模块化的。内置库相对较小,然后根据您要执行的操作安装软件包。例如,包scipy
(科学计算),cv2
(计算机视觉)和PIL
(图像处理)都可以从磁盘读取简单图像,因此您可以根据它们进行选择。您可能想要使用的包装中的其他内容。
这提供了更大的灵活性,但它确实需要您舒适地安装包。遗憾的是,由于缺少一个&#34;软件包管理器&#34;,在Windows上比在类似Linux的系统上要困难得多。在Linux上我可以sudo apt-get install scipy
并将所有scipy安装在一行中。在Windows中,最好安装conda之类的东西来平滑软件包安装过程。