学习《Python图像处理实战》第5章第4节的高斯金字塔,输入如下代码:
image = data.astronaut()
pyramid = tuple(transform.pyramid_gaussian(image, downscale=2))
pylab.figure(figsize=(20, 5))
i, n = 1, len(pyramid)
for p in pyramid:
pylab.subplot(1, n, i)
pylab.imshow(p)
pylab.title(str(p.shape[0]) + '*' + str(p.shape[1])), pylab.axis('off')
i += 1
pylab.suptitle('Guassian Pyramid', size=30)
pylab.show()
结果得到TypeError: Invalid shape (256, 256, 2) for image data的报错。
在CSDN里查了查,很多建议是在pyramid_gaussian()里加一个multichannel=True,结果又得到“TypeError: pyramid_gaussian() got an unexpected keyword argument 'multichannel'”的报错。
最后,还是在scikit-image.org官网上找到了答案,只要在transform.pyramid_gaussian()里添加channel_axis=-1就可以解决了,即:
pyramid = tuple(transform.pyramid_gaussian(image, downscale=2, channel_axis=-1))