【问题标题】:How to create a matrix which contains a selected set of pixels from another matrix based on a third one?如何基于第三个矩阵创建一个矩阵,其中包含来自另一个矩阵的一组选定像素?
【发布时间】:2018-05-18 21:58:44
【问题描述】:

我有一个灰度矩阵 A,它的某些值是黑色的(即像素值为 0)。我有另一个灰度矩阵 B,它的大小与 A 相同。

我想创建一个矩阵 C,它只包含 B 的值,其中 A 为 0,而 B 中的其余值变为白色。例如,

A = [0 35 0 0 88];
B = [22 3 34 99 4];

矩阵C应该是

C= [22 255 34 99 255];

我正在尝试如下使用逻辑索引,但它有错误。

C(A==0)=B;
C(A~=0)=255;

如何更改上述行以获得所需的结果?

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

    您正试图将整个B 分配给A==0 所在位置的较小矩阵。

    为了只使用正确数量的值进行赋值,第一行需要

    C(A==0)=B(A==0);

    但应该注意的是,只需将所有 C 设置为相应的 B 值 (C = B),然后只需修改 A~=0 的值,即可获得相同的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 2016-11-17
      • 2020-07-31
      • 1970-01-01
      相关资源
      最近更新 更多