开发者

How to lock image dimensions in MATLAB

开发者 https://www.devze.com 2023-04-12 16:34 出处:网络
So I have this matrix in MATLAB, 200 deep x 600 wide. It represents an image that is 2cm deep x 6cm wide. How can I plot this image so that it is locked into prope开发者_如何学Cr dimensions, i.e. 2cm

So I have this matrix in MATLAB, 200 deep x 600 wide. It represents an image that is 2cm deep x 6cm wide. How can I plot this image so that it is locked into prope开发者_如何学Cr dimensions, i.e. 2cm x 6cm? If I use the image or imagesc commands it stretches it all out of shape and shows it the wrong size. Is there a way to lock it into showing an image where the x and y axes are proportional?

Second question, I need to then set this image into a 640x480 frame (20 pixel black margin on left and right, 280 pixel black margin on bottom). Is there a way to do this?


To keep aspect ratio, you can use axis equal or axis image commands.

Quoting the documentation:

  • axis equal sets the aspect ratio so that the data units are the same in every direction. The aspect ratio of the x-, y-, and z-axis is adjusted automatically according to the range of data units in the x, y, and z directions.

  • axis image is the same as axis equal except that the plot box fits tightly around the data`

For second question:

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;


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

Second question:

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


As an alternative to the other answers, you might want:

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

Make sure you do this after plotting the image to get the other axis properties correct.

For the second question, take care with the number of colour channels:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号