2011-10-11 11 views
5

この行列は、MATLABの200 x 600の幅の幅を持っています。それは、深さ2cm×幅6cmの画像を表す。どのようにしてこの画像をプロットして、適切な大きさ、つまり2cm x 6cmに固定することができますか? イメージまたはimagescコマンドを使用すると、すべての形が伸びて間違ったサイズが表示されます。 x軸とy軸が比例する画像を表示するには、それをロックする方法はありますか?MATLABの画像寸法をロックする方法

2番目の質問では、この画像を640x480フレームに設定する必要があります(左右に20ピクセルの黒余白、下段に280ピクセルの黒余白)。これを行う方法はありますか?

答えて

10

アスペクト比を維持するには、axis equalaxis imageコマンドを使用することができます。

文書を引用:

  • axis equalは、データユニットがすべての方向で同じになるようにアスペクト比を設定します。 x軸、y軸、z軸のアスペクト比は、x、y、z方向のデータ単位の範囲に応じて自動的に調整されます。

  • axis imageプロットボックスがdata` 2番目の質問については

の周りにしっかりとフィットすることを除いて同じ軸と同じです:あなたは、他の回答に代わるものとして

third_dimension_size=1; %# for b&w images, use 3 for rgb 
framed_image=squeeze(zeros(640,480,third_dimension_size)); 
framed_image(20:20+600-1,140:140+200-1)= my_600_200_image; 

imagesc(framed_image'); axis image; 
2

set(gca,'DataAspectRatio',[1 1 1])

2番目の質問:

new_image = zeros(480,640); 
new_image(20:(200+20-1),20:(600+20-1)) = old_image; 
2

必要があります:

set(gca, 'Units', 'centimeters', 'Position', [1 1 6 2]) 

作図後にこれを行うようにしてください他の軸プロパティを正しく取得するための画像。 2番目の質問については

、カラーチャンネルの数と世話をする:

new_image = zeros(480,640, size(old_image)); 
new_image(20:(200+20-1),20:(600+20-1),:) = old_image; 
関連する問題