1

異なるバンドを持つ 2 つの異なる衛星画像があります。私が見たいのは、ピクセルの違いです。それを達成するために、2 つの画像の値を減算しました。その結果、差分値を持つ新しい 1 つの画像ができました (バンドの場合)。それが可能かどうかはわかりませんが、この値を色で分類します。たとえば、差が 0 から 20 の場合、ピクセルを青、30 から 40 の場合は緑、40 を超える場合は赤に色付けしたいと考えています。これを行うことは可能ですか?

前もって感謝します!

4

1 に答える 1

0
img=rand(300,200)*256; // test image
image(img)
colorbar

デフォルトのカラー マップで画像が表示されます。カラー バーからわかるように、0 に近い値には青、120 付近の値には緑、最高値には赤のさまざまな色合いが使用されます。

imageデフォルトのカラー マップには 64 のエントリが含まれているため、引数として 0 ~ 255 の値を持つ行列を使用することに注意してください。したがって、それぞれが 4 つの隣接する値に使用されます。ただし、カラーマップには 256 行もある場合があります。

次のように、そのカラーマップを再定義するだけです。

myMap = [repmat([0 0 1],20,1); ... %# blue for first 20 values
         repmat([0 1 0],20,1); ... %# green for next 20
         repmat([1 1 0.5],216,1)];  %# bright yellow for the rest
colormap(myMap); 

(これは、画像の値が 0 から 255 にスケーリングされていることを前提としています。カラーマップの行が画像の値よりも少ない場合、カラーマップはスケーリングされ、カラーバーのラベルは画像の値と一致しません。ただし、一致するように、イメージ内の最大値 (<=255 の場合) に対応する行数でカラーマップを作成します。不明な場合は、 と のヘルプを参照してください) imagecolormap

于 2013-03-08T07:57:14.740 に答える