【问题标题】:MATLAB Shift the origin (0,0) of the pixels in my imageMATLAB 移动图像中像素的原点 (0,0)
【发布时间】:2017-02-01 05:32:53
【问题描述】:

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

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

所以我的问题是:我怎样才能改变我的输入(我的图片 1 的位置)以便它与代码过程相关?

感谢您的帮助, 奥德

【问题讨论】:

    标签: matlab image-processing shift


    【解决方案1】:

    添加一个有点细节的答案:

    在计算机、图像处理等领域,左上角的 (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))
    

    【讨论】:

    • 感谢您的回答,对您有帮助!
    【解决方案2】:

    使用图像可以反转 Y 轴:

    set(ax,'YDir','reverse');
    

    【讨论】:

      【解决方案3】:

      这取决于您的代码。也许您可以即时执行此操作,以便立即获得所需的输出。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-07
        • 1970-01-01
        • 2014-11-07
        • 1970-01-01
        • 2020-12-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多