imageにおける、​各要素の特定の値に対​応した配置について

9 ビュー (過去 30 日間)
Yoshihiko
Yoshihiko 2017 年 11 月 28 日
編集済み: Jiro Doke 2017 年 11 月 29 日
imageによって図を表示する際に、飛び飛びの値で軸に沿って表示できなかったので質問させて頂きます。 軸の値が1ずつ増加する場合は、image(x,y,C)とすることで、x,yを開始点としてCを表示することができました。 しかし、例えば y軸にある y = [1,3,9,10,15,...]のような線形でないベクトルに対し、その値に対応する位置に、Cの各要素を配置することができませんでした。 この場合、y(1)からy(2)までをC(1,:)の図が占め、y(2)からy(3)までをC(2,:)の図が占める、というような図の作成方法は存在するのでしょうか?

採用された回答

Jiro Doke
Jiro Doke 2017 年 11 月 29 日
編集済み: Jiro Doke 2017 年 11 月 29 日
pcolor を使うと非線形の X,Y の位置指定ができます。ただ、image 関数と仕様が違うので多少設定をいじる必要があります。以下のサンプルを参考にしていただきたいのですが、例えば
  • pcolor はカラーマップで色情報を指定するので、必要に応じて colormap 関数を使用します。
  • pcolor は各ピクセルを黒のメッシュで強調表示するため、 shading flat で表示を無効にします。
  • pcolor では原点 (0,0) が左下として表示されるので、 axis を使って左上に変更します。
% カラーマップ付き画像
[RGB,map] = imread('corn.tif');
X = 1:size(RGB,2);
% 非線形のインデックスを作成
Y = cumsum(randi(5,1,size(RGB,1)));
pcolor(X,Y,RGB)
shading flat % エッジのラインを削除
colormap(map) % カラーマップを指定
caxis([0 size(map,1)]) % カラーマップのスケーリング
axis ij image % 画像としての軸指定

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeイメージ についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!