MATLAB移动图像中像素的原点(0,0)

时间:2017-02-01 05:32:53

标签: matlab image-processing shift

作为我的代码的输入,我需要在我的图片上有一些位置:位置以像素为单位,原点(0,0)位于我照片左上方的角落

picture where positions are tracked with origin top left

问题是当我运行我的代码来映​​射我的图片上的位置时,原点会转移到左下角:

picture where positions are mapped with origin bottom left

所以我的问题是:我怎么能改变我的输入(我的picture1的位置),以便它与代码进程相关?

感谢您的帮助, 奥德

3 个答案:

答案 0 :(得分:1)

添加一个详细的答案:

在计算机,图像处理等中,左上角有(0,0)像素是常态。但是,可以理解的是,当您拥有xy数据时,您希望将一起绘制到图像中。这里有一些解决方案:

imshow(image);
axis xy; % This line sets up the axis in a standard coordinate system

您可以使用axis ij

还原它

通常,这还不够。由于imshow假设每个像素都处于整数索引位置,您可能没有。也许你的数据是毫米,或任何其他任意单位。解决方法是使用imagesc

imagesc(img); 

相当于imashow(img);axis xy。此外,您可以选择像素位置的任意矩阵为imagesc(x,y,img);

最后,你可以flipud你的数据用于绘图,但我建议你用绘图内联,所以你不要修改数据本身。

imshow(flipud(img))

答案 1 :(得分:0)

这取决于你的代码。也许你可以在飞行中做到这一点,这样你就可以立即获得所需的输出。

如果不只是翻转输出。您可以使用flipud

https://de.mathworks.com/help/matlab/ref/flipud.html

答案 2 :(得分:0)

使用图像可以反转Y轴:

File1