2

私の質問は簡単です。RGB イメージと論理行列があります。論理行列の対応する要素で真であるピクセルを (150,160,170) に設定したい。

例えば:

    1 1 1 1 1     1 1 1 1 1    1 1 1 1 1                0 0 0 0 0
    1 1 1 1 1     1 1 1 1 1    1 1 1 1 1                0 0 0 0 0
r=  1 1 1 1 1  g= 1 1 1 1 1  b=1 1 1 1 1   logical_mat =1 0 0 0 0
    1 1 1 1 1     1 1 1 1 1    1 1 1 1 1                1 1 0 0 0
    1 1 1 1 1     1 1 1 1 1    1 1 1 1 1                1 1 1 0 0

結果を出してほしい

    1   1   1   1 1     1   1   1   1 1    1   1   1   1 1 
    1   1   1   1 1     1   1   1   1 1    1   1   1   1 1 
r=  150 1   1   1 1  g= 160 1   1   1 1  b=170 1   1   1 1 
    150 150 1   1 1     160 160 1   1 1    170 170 1   1 1 
    150 150 150 1 1     160 160 160 1 1    170 170 170 1 1 

ピクセルを同じ色に設定するのが簡単な場合は、論理インデックスを試しました

lm = repmat(logical_mat,[1 1 3]);
rgb(lm) = 150;

しかし、チャンネルごとに値を設定する方法がわかりません。

前もって感謝します。

4

1 に答える 1

0

適切な論理マトリックスを既に作成しています。

lm = repmat(logical_mat,[1 1 3]);

同じサイズの 3 チャネル カラー マトリックスを作成する必要があります。

cm = repmat(cat(3,150,160,170), size(lm,1), size(lm,2))

次に、次のようにカラー マトリックスにインデックスを付けlmます。

rgb(lm) = cm(lm);
于 2013-12-12T23:40:43.443 に答える