3

double で表された RGB イメージ マトリックス (高さ * 幅 * 3) があります。マトリックスを操作した後、一部の値が 1 より大きくなったり、0 より小さくなったりしました。これらの値を 1 と 0 に正規化する必要があります。ありがとうございます。

4

2 に答える 2

6

まあ、条件による索引付けを使用してください。行列が M と呼ばれているとしましょう。1 よりも大きい値を 1 に、0 よりも小さい値を 0 に設定するだけの場合は、次を使用します。

M(M > 1) = 1;
M(M < 0) = 0;

ただし、すべての値を間隔 [0; に比例して正規化する場合。1] の場合、次のようなことを行う必要があります。

mmin = min(M(:));
mmax = max(M(:));
M = (M-mmin) ./ (mmax-mmin); % first subtract mmin to have [0; (mmax-mmin)], then normalize by highest value

行列 M が既に区間 [0; にある場合を考慮する必要があります。1] であり、正規化は必要ありません。

于 2011-11-13T12:24:39.747 に答える
0

使用できる画像を見たいだけなら

imagesc(M); 

範囲自体を処理します。

値を手動で変更して完全に制御したい場合は、

M = M ./ max(M(:));

正の値しかない場合は、このトリックを実行します。フルコントラストの画像を取得するには、次のようにします。

m = m - min(m(:));
m = m ./ max(m(:));
于 2011-11-13T12:36:34.257 に答える