我有一个2D数组,我将使用scipy.misc.toimage()
将其保存为灰度图像。在这样做之前,我想将图像倾斜一个给定的角度,插值如scipy.ndimage.interpolation.rotate()
:
上图仅用于说明偏斜过程。我知道我必须放大我的图像才能包含偏斜的版本。我怎样才能做到这一点?我更喜欢使用scipy。
答案 0 :(得分:3)
这个脚本可以做到这一点。
a=imread("sorNB.png")
h,l=a.shape
dl=50
b=numpy.zeros((h,l+dl),dtype=a.dtype)
for y in range(h):
dec=(dl*(h-y))//h
b[y,dec:dec+l]=a[y,:]
由于内部赋值(b[y,dec:dec+l]=a[y,:])
纯粹是numpy,因此非常快。
修改
感谢ivan_pozdeev。插值的方法:
from scipy.ndimage.interpolation import geometric_transform
a=imread("sorNB.png")
h,l=a.shape
def mapping(lc):
l,c=lc
dec=(dl*(l-h))/h
return l,c+dec
figure(1)
dl=50;c=geometric_transform(a,mapping,(h,l+dl),order=5,mode='nearest')
imshow (concatenate((a,zeros((225,50)),c),axis=-1),cmap=cm.gray)