MATLAB-如何从.fig文件中裁剪图像的某些部分并将其另存为.mat?

时间:2018-09-10 10:57:30

标签: image matlab crop

我有一个.fig文件。我在想要的图像上放置 32x32 正方形。我写这段代码:

h = imrect(gca,[1 1 32 32]);

但是我没有裁剪图像的 32x32 部分。如何从.fig裁剪并另存为.mat?

1 个答案:

答案 0 :(得分:2)

您可以使用imrect对象的 getPosition 属性。如果您使用的是 .fig 文件,则可以最初使用getimage函数从“图像”手柄获取图像。

%% If you are working with a image file.    
%Sample image.
%I = imread('cameraman.tif');

%Display image.
%imshow(I);

%% If you are working with a .fig file. 
%In the following example, yourfile.fig is cameraman.tif previously saved as a .fig file.
I = open('yourfile.fig')
I = getimage(I); 

%Draw rectangle.
h = imrect(gca,[100 30 40 32]);

%Crop rectangle.
J=imcrop(I,h.getPosition);

%Show rectangle.
imshow(J);

%Save as .mat file
save('mymatfile.mat','J');

初始图片:

enter image description here

添加了不正确的对象

enter image description here

已裁剪的元素

enter image description here