我想将MATLAB中图像处理工具箱中的fspecial(‘motion’,len,theta(函数转换为Python,但我被这一行卡住了,无论我怎么看,它对我来说都没有意义。
h(end+(1:end)-1,end+(1:end)-1) = dist2line;
h是二维阵列,dist2line也是二维阵列。我只知道matlab中的arr(end(是Python中的arr[-1],但索引中的(1:end)
是如何工作的。
感谢您的帮助。非常感谢
如果h
是一个2d数组,那么它的维度为size(h, 1) x size(h, 2)
,所以你基本上可以用相应的大小替换end
,所以你会得到
s = size(h);
h(s(1)+(1:s(1))-1, s(2)+(1:s(2))-1) = dist2line;
请注意,当您在两个维度中都有一个索引向量时,与python不同,您基本上提取了h
的矩形子矩阵。