3

我有一个带有白色边框的图像,我需要去掉边框。图像上方有 20 行白色像素,左侧有 5 列白色,右侧有 5 列白色,图像下方有 5 行白色。我不想将图像完全裁剪出该边界,我该如何在 matlab 中做到这一点?谢谢你提供的所有帮助!

(图片是 tiff,这就是为什么我不能为此使用在线服务,他们不会让我上传 .tiff)

4

3 回答 3

4

您需要的是内置的 MATLAB 函数imcrop。要使用它,请指定类似

B = imcrop(A,[xmin ymin width height]);

如果 A 是您的原始图像。首先找到图像的尺寸。说它是 800 x 600。然后您正在寻找裁剪 770 x 580 的图像,因此这些数字分别是您在上述函数中的宽度和高度。您的 x 和 y 将分别为 5 和 20。

于 2013-07-24T21:12:53.480 回答
2

如果您有图像处理工具箱,您可以为此使用imcrop,或者您可以按如下方式制作新图像:

I2 = I(21:end-5, 6:end-5)

对于 3 个维度,您可以使用:

I2 = I(21:end-5,6:end-5,:)

例如,根据您的评论:

I = rand(153,1510,3);
size(I); %  153        1510           3
I2 = I(21:end-5,6:end-5,:);
size(I2); % 128        1500           3
于 2013-07-24T21:11:37.780 回答
0
newIm = oldIm(20:length(oldIm(:,1))-5,5:length(oldIm(1,:))-5)
于 2013-07-24T22:00:53.703 回答