【问题标题】:Extract image based on roi基于 roi 提取图像
【发布时间】:2013-09-20 17:42:23
【问题描述】:

我有一张噪声很大的图像 (256x256 uint8),所以我制作了一个包含值 0 和 1 的 roi,真实图像标记为 1,噪声标记为 0。

如何使用我制作的 roi 提取真实图像?

应该是这样的:如果坐标x,y根据roi为1,则保留它,如果不是,则不要将其添加到新图像中。

提前致谢。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    我认为这可能很简单

    yourImage(roi)
    

    newImage = NaN(size(yourImage)); %Or perhaps zeros instead of NaN
    newImage(roi>0) = yourImage(roi>0)
    

    如果这不起作用,请提供您的可变尺寸。

    以下是它应该如何工作的示例:

    % Suppose this is your image
    yourImage = uint8(round(255*rand(256)));
    % Suppose this is the mask of zeros and ones you created
    roi = uint8(yourImage < 10);
    
    newImage = NaN(size(yourImage));
    newImage(roi>0) = yourImage(roi>0);
    

    【讨论】:

    • [link]imgur.com/EGP8YaR 这是我的变量。它不适用于矩阵的构造,并且在尝试调用 image(roi) 时出现此错误:下标索引必须是真正的正整数或逻辑。 “图像”是“腹部”,它是一个 .mat 文件
    • @user2782743 我看到 roi 的类型是 uint8,尝试使用 roi&gt;0 而不是 roi 是否有帮助(将其转换为 logical 的紧凑方式)
    • @user2782743 您是否收到错误,或者它根本没有达到您的预期?在第一种情况下,请提及错误(以及您为解决它所做的工作),或者在第二种情况下,请说明错误的作用和您的预期。
    • 我遇到了同样的错误:下标索引必须是正整数或逻辑数。
    • @user2782743 请使用dbstop if error 查找发生错误的行以及当时的变量。另请参阅我的更新答案,了解如何完成此操作的示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2019-07-17
    • 2013-08-20
    相关资源
    最近更新 更多