作为代码的输入,我需要在图片上有一些位置:位置以像素为单位,原点(0,0)位于图片的左上角。
问题是,当我运行映射图片上位置的代码时,原点移动到左下角:
因此,我的问题是:我如何才能将我的输入(我的picture1的位置)转换为与代码过程相关的输入?
谢谢你的帮助,奥德
发布于 2017-02-01 07:36:35
对于图像,您可以反转Y轴:
set(ax,'YDir','reverse');
发布于 2017-02-01 09:28:39
添加一个带有一些细节的答案:
在计算机、图像处理等领域,在左上角有(0,0)像素是一种常态。但是,可以理解的是,当您拥有x
、y
数据时,您可能希望将其与图像一起绘制。以下是一些解决方案:
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))
发布于 2017-02-01 06:02:57
这取决于你的代码。也许你可以在飞行中做到这一点,这样你就能马上得到想要的输出。
如果不是只是翻转输出。你可以用flipud
来做这个。
https://stackoverflow.com/questions/41972569
复制相似问题