在Python中将图像转换为numpy数组

0 投票
1 回答
2595 浏览
提问于 2025-04-18 01:13

我第一次使用 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 是三个独立的层。所以如果你的过滤操作没有考虑到这一点,你就需要自己分离这些层。

希望这能帮到你。

撰写回答