Python skimage
包有一个函数transform.AffineTransform()
,其中一个选项是shear
,它执行horizontal shear。你知道吗
很明显,我可以通过来回切换轴来做垂直剪切。我就是这么做的:
from skimage import data, transform
import matplotlib.pyplot as plt
import numpy as np
img = data.astronaut()/255
v = 0.3
tf = transform.AffineTransform(shear=-v)
img2 = transform.warp(img, tf, order=1, preserve_range=True, mode='constant')
img3 = np.swapaxes(img, 0, 1)
img3 = transform.warp(img3, tf, order=1, preserve_range=True, mode='constant')
img3 = np.swapaxes(img3, 0, 1)
plt.imshow(np.hstack([img, img2, img3]))
plt.show()
不管怎样,我很惊讶没有更直接的方法来定义垂直剪切选项。。。我弄错了吗?你知道吗
你的问题(和链接页)包含答案。。。由于
AffineTransform
允许您指定转换矩阵,并且链接的wiki页面显示了这是什么,因此通过直接指定转换矩阵来减少操作的数量非常简单,例如你应该看到两个图形有同一组图像。你知道吗
相关问题 更多 >
编程相关推荐