この投稿の質問と同様の質問があります。
グレースケールの画像があり、その上に点をプロットします。使用するポイントをプロットする前にcolormap('jet')
、画像をグレースケールにしたいので、ポイントをプロットした後、カラーマップをリセットしcolormap('gray')
ます。
しかし、カラーバーを表示したい! また、カラーバーは「ジェット」ではなくグレースケールでプロットされます。どうやってやるの?
編集: ポイントの色を示すカラーバーが必要です!
この投稿の質問と同様の質問があります。
グレースケールの画像があり、その上に点をプロットします。使用するポイントをプロットする前にcolormap('jet')
、画像をグレースケールにしたいので、ポイントをプロットした後、カラーマップをリセットしcolormap('gray')
ます。
しかし、カラーバーを表示したい! また、カラーバーは「ジェット」ではなくグレースケールでプロットされます。どうやってやるの?
編集: ポイントの色を示すカラーバーが必要です!
ここで説明したように、いくつかの方法があります。
画像処理ツールボックスがある場合はsubimage
、別のカラーマップを持つ独立した画像を作成するために使用します。次に、画像とポイントをプロットし、 を使用してそれらを 1 つに結合しますlinkaxes
。
ファイル交換からのfreezeColors (または私が個人的にテストしたことのない複数の colormaps )を使用してください。これは、より大きなカラーマップを作成する非常に簡単な方法であり、画像とカラーバーを表示するためにカラーマップの適切な部分を自動的に選択します。
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
結果: