【发布时间】:2017-02-01 05:32:53
【问题描述】:
作为我的代码的输入,我需要在我的图片上有一些位置:这些位置以像素为单位,原点 (0,0) 位于我图片的左上角
问题是,当我运行映射图片位置的代码时,原点会移动到左下角:
所以我的问题是:我怎样才能改变我的输入(我的图片 1 的位置)以便它与代码过程相关?
感谢您的帮助, 奥德
【问题讨论】:
标签: matlab image-processing shift
作为我的代码的输入,我需要在我的图片上有一些位置:这些位置以像素为单位,原点 (0,0) 位于我图片的左上角
问题是,当我运行映射图片位置的代码时,原点会移动到左下角:
所以我的问题是:我怎样才能改变我的输入(我的图片 1 的位置)以便它与代码过程相关?
感谢您的帮助, 奥德
【问题讨论】:
标签: matlab image-processing shift
添加一个有点细节的答案:
在计算机、图像处理等领域,左上角的 (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))
【讨论】:
使用图像可以反转 Y 轴:
set(ax,'YDir','reverse');
【讨论】:
这取决于您的代码。也许您可以即时执行此操作,以便立即获得所需的输出。
如果不只是翻转输出。你可以使用flipud。
【讨论】: