尝试使用 skimage.transform 在 Python 中旋转一张简单的图片

B F*_*ado 5 python scikit-image

我在 Python 3.X 中有一张简单的图片,我可以显示它。但是,我无法使用 skimage.transform.rotate 旋转它。

错误是我的“图片”对象没有形状。我已经看到旋转命令后包含 .shape,但它仍然不起作用。

这是我的代码

import skimage
from skimage import novice

# New, all black picture
pic = skimage.novice.Picture.from_size((600, 600), color=(0, 0, 0))

# Coloring some pixels in white
for i in range(0, len(all_dots) - 1, 2):
    x = all_dots[i]
    y = all_dots[i + 1]
    pic[x, y] = (255, 255, 255)

from skimage.transform import rotate

new_pic = rotate(pic, 180)
# Also new_pic = rotate(pic, 180).shape does not work

new_pic.show()
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢

Max*_*ady 6

必须进行更多测试,但乍一看我会说问题是您传递给rotate() 函数的第一个参数。

根据 Skimage 的文档:http://scikit-image.org/docs/stable/api/skimage.transform.html#rotate

rotate() 的第一个参数是 ndarray 格式的图像。根据我的快速测试,您的对象(因为您使用的是“新手”模块)是类型。

尝试类似的方法:

new_pic = rotate(pic.array, 180)
Run Code Online (Sandbox Code Playgroud)

pic.array 是对存储在新手“Picture”对象中的底层 ndarray 对象的直接引用

编辑:这给你 new_pic 作为 numpy 数组!所以你需要执行以下操作来显示它:

new_pic = rotate(pic.array, 180)

from skimage.io import imshow, show

imshow(new_pic)

show()
Run Code Online (Sandbox Code Playgroud)