2011-10-11 3 views
5

그래서이 행렬은 200 x 600 깊이의 MATLAB에 있습니다. 2cm x 6cm 너비의 이미지를 나타냅니다. 이 이미지를 플롯하여 적절한 크기 (예 : 2cm x 6cm)로 고정시킬 수 있습니까? 이미지 또는 imagesc 명령을 사용하면 모양이 엉망이되어 이미지가 잘못된 크기로 표시됩니다. x 축과 y 축이 비례하는 이미지를 보여줄 수있는 방법이 있습니까?MATLAB에서 이미지 크기를 잠그는 방법

두 번째 질문으로,이 이미지를 640x480 프레임으로 설정해야합니다 (왼쪽과 오른쪽의 검은 색 여백 20 픽셀, 아래쪽 검은 색 여백 280 픽셀). 이것을 할 수있는 방법이 있습니까?

답변

10

는 가로 세로 비율을 유지하려면, 당신은 axis equal 또는 axis image 명령을 사용할 수 있습니다.

문서를 인용 :

  • axis equal 데이터 단위는 모든 방향으로 동일하도록 종횡비를 설정한다. x, y 및 z 축의 종횡비는 x, y 및 z 방향의 데이터 단위 범위에 따라 자동으로 조정됩니다.

  • axis image

    플롯 상자가 두 번째 질문에 대해서는 data`

주위에 꽉 맞는 것을 제외하고는 축과 동일과 동일 : 다른 답변에 대한 대안으로

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])

두 번째 질문 :

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]) 

플로팅 후 이미지를 다른 축 속성을 올바른 얻으려면. 두 번째 질문에 대한

, 색상 채널의 번호를 알아서 :

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