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

Trying to ROTATE a simple picture in Python using skimage.transform

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

旋转它

错误是我的 'Picture' 对象没有形状。我已经看到旋转命令后包含的 .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()

有什么想法吗?谢谢

需要做更多的测试,但乍一看我会说问题是你传递给 rotate() 函数的第一个参数。

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

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

试试这样的东西:

new_pic = rotate(pic.array, 180)

pic.array是对新手存储的底层ndarray对象的直接引用'Picture'对象

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

new_pic = rotate(pic.array, 180)

from skimage.io import imshow, show

imshow(new_pic)

show()