在matlab中垂直移动图像?

时间:2011-07-19 16:45:24

标签: matlab

这张图片是灰度的,我已经做了一次扫描来检测我想要移动到顶部的第一个和最后一个像素,然后把这些点放到一个数组中但是我得到的是两个像素的位移。

我找到了这个例子how to displace an image in python?,它可以帮到这里,但不知道如何进行更改

1 个答案:

答案 0 :(得分:0)

这个例子很清楚。它说首先你必须制作一个你希望你的图像大小的新矩阵。然后将所有像素值复制到新矩阵中。如果你不打扰太空,这很简单也很好。

如果你想要'inplace'转移那么你必须做以下事情:我将举一个例子,我希望你可以从那里接受: 假设您的图像矩阵是这样的:

A(1:4,1:4) =

0 0 0 0
0 1 2 3
0 4 5 6

你想得到:

1 2 3
4 5 6

然后你可以这样做:

A(1,:) = []; 
A(:,1) = [];

编辑: 采用前面的示例,如果您不想减小矩阵的大小,那么您可以按以下方式复制元素:

A(1,1) = A(2,2);
A(1,2) = A(2,3);
A(1,3) = A(2,4);

我认为你可以清楚地看到复制的模式。 你可以把类似的逻辑放在一个循环中,就是这样。