2

この投稿の質問と同様の質問があります。

グレースケールの画像があり、その上に点をプロットします。使用するポイントをプロットする前にcolormap('jet')、画像をグレースケールにしたいので、ポイントをプロットした後、カラーマップをリセットしcolormap('gray')ます。

しかし、カラーバーを表示したい! また、カラーバーは「ジェット」ではなくグレースケールでプロットされます。どうやってやるの?

編集: ポイントの色を示すカラーバーが必要です!

ここに画像の説明を入力

4

2 に答える 2

2

ここで説明したように、いくつかの方法があります。

  1. 画像処理ツールボックスがある場合はsubimage、別のカラーマップを持つ独立した画像を作成するために使用します。次に、画像とポイントをプロットし、 を使用してそれらを 1 つに結合しますlinkaxes

  2. ファイル交換からのfreezeColors (または私が個人的にテストしたことのない複数の colormaps )を使用してください。これは、より大きなカラーマップを作成する非常に簡単な方法であり、画像とカラーバーを表示するためにカラーマップの適切な部分を自動的に選択します。

  3. anandr の回答に従って、グレースケール画像を RGB に変換します。Matlab は RGB 画像にカラーマップを使用しないため、ポイントを自由にプロットし、画像とは無関係にカラーバーを表示できます。

(3) のコード例:

I = imread('cameraman.tif');
imshow(cat(3,I,I,I))

hold on

x = @() round(size(I,1) * rand(50,1));
y = @() round(size(I,2) * rand(50,1));

plot(x(), y(), 'r.')
plot(x(), y(), 'g.')
plot(x(), y(), 'b.')

colormap('jet')
colorbar

結果:

ポイントとカラーバー付きの写真

于 2013-04-15T08:11:47.487 に答える