我有一个带有白色边框的图像,我需要去掉边框。图像上方有 20 行白色像素,左侧有 5 列白色,右侧有 5 列白色,图像下方有 5 行白色。我不想将图像完全裁剪出该边界,我该如何在 matlab 中做到这一点?谢谢你提供的所有帮助!
(图片是 tiff,这就是为什么我不能为此使用在线服务,他们不会让我上传 .tiff)
我有一个带有白色边框的图像,我需要去掉边框。图像上方有 20 行白色像素,左侧有 5 列白色,右侧有 5 列白色,图像下方有 5 行白色。我不想将图像完全裁剪出该边界,我该如何在 matlab 中做到这一点?谢谢你提供的所有帮助!
(图片是 tiff,这就是为什么我不能为此使用在线服务,他们不会让我上传 .tiff)
您需要的是内置的 MATLAB 函数imcrop
。要使用它,请指定类似
B = imcrop(A,[xmin ymin width height]);
如果 A 是您的原始图像。首先找到图像的尺寸。说它是 800 x 600。然后您正在寻找裁剪 770 x 580 的图像,因此这些数字分别是您在上述函数中的宽度和高度。您的 x 和 y 将分别为 5 和 20。
如果您有图像处理工具箱,您可以为此使用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
newIm = oldIm(20:length(oldIm(:,1))-5,5:length(oldIm(1,:))-5)