MATLAB裁剪图片

考试报名需要上传照片,但是大小比例有要求,高宽比要求为4:3,用MATLAB来进行裁剪。

1. 暴力法

原图为护照照片,比例为高1080,宽1626,需要将宽变为810,采用逐个值代替法。

注意需要将值变为uint8才可以保存成图片并正确显示,double不可。

clear all;
clc;
a00 = imread('C:\Users\Administrator\Desktop\lk.jpg');
b = zeros(1080,810,3);
dimI = size(a00);
rm = dimI(1);
cm = dimI(2);
km = dimI(3);

for k = 1:km
    for i = 1:rm
        for j = 1:810
            b(i,j,k) = uint8(a00(i,j+403,k));
            %b(i,j,k) = a00(i,j,k);
        end
    end
end
b_u = uint8(b);
imshow(b_u);
imwrite(b_u,'C:\Users\Administrator\Desktop\lk3.jpg','jpg');

2. 直接imcrop

imcrop输入左下角坐标初始值,和宽度,高度即可。

imcrop(I, [x0, y0, width, height]);

clear all;
clc;
I = imread('C:\Users\Administrator\Desktop\lk.jpg');
b = imcrop(I,[403,0,810,1080]);
imshow(I);
imshow(b);
imwrite(b,'C:\Users\Administrator\Desktop\lk2.jpg','jpg');

 

你可能感兴趣的:(MATLAB)