在Python中将图像转换为numpy数组
我第一次使用 Python + Scipy + Scikit-image + numpy。
我在参考这个页面的内容,只是稍微改了一下给出的代码,想要加载一张我喜欢的图片:
tree = misc.imread('C:\\Users\\app\\Pictures\\treephoto1.jpg')
type(tree)
<type 'numpy.ndarray' >
tree.shape, tree.dtype((512, 512), dtype('uint8'))
但是我遇到了以下错误:
type(tree) <type 'numpy.ndarray'>
^
SyntaxError: invalid syntax
语法上有什么问题吗?我在 Windows 上使用的是 Python 2.7,所有相关的工具包也是针对 Python 2.7 的。
我需要把这张图片转换成一个二维的 numpy 数组,这样我才能用 Canny 边缘检测器来处理它。
1 个回答
3
随便写代码而不思考可能会有危险,但在你的情况下,这样做就是错误的。你提到的页面显示了这个:
>>> lena = misc.imread('lena.png')
>>> type(lena)
<type 'numpy.ndarray'>
>>> lena.shape, lena.dtype
((512, 512), dtype('uint8'))
>>>
是 Python 的交互式控制台提示符。你在这里输入命令。
<type 'numpy.ndarray'>
和 ((512, 512), dtype('uint8'))
是你输入命令后的结果。所以你对应的代码应该只有:
tree = misc.imread('C:\\Users\\app\\Pictures\\treephoto1.jpg')
type(tree)
tree.shape, tree.dtype
注意,这些命令
type(tree)
tree.shape, tree.dtype
不会做任何事情,只是给你展示关于你图像数据的信息。
更新
基本上(并不总是),你的图像是分层的。RGB 是三个独立的层。所以如果你的过滤操作没有考虑到这一点,你就需要自己分离这些层。
希望这能帮到你。