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)
有任何想法吗?谢谢
必须进行更多测试,但乍一看我会说问题是您传递给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)