添加填充到图像 - Matlab

时间:2014-03-11 21:59:46

标签: matlab padding

我的图片大小为89x56px,是RGB。

我试图在图像周围添加填充,直到(x,y)都大于64px。

我已经通过阅读question尝试了这一点:但没有运气:

  img = subImage{1};              %small image 89x56
  new(size(subImage{1},1),64)=0;  %zero matrix for padding
  size(new);
  merged = img;                   %also tried adding img to new
  imshow(merged)

理想情况下,我甚至想要填充图像的每一面。例如64 - 56 = 8;因此每侧有4列0(如果它太难,则只有8列。)

任何帮助都会受到赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:7)

由于您有imshow,因此您应该padarray

pad = [64 64 0] - size(img);
pad(pad<0) = 0;
merged = padarray(img, floor(pad./2));

答案 1 :(得分:0)

<强>代码

limit = 64; %%// Padding limit

[sz1 sz2 C] = size(img);
ad1 = round((limit - min([sz1 sz2]))/2);
img1 = uint8(zeros(sz1+2*ad1,sz2+2*ad1,3));
img1(ad1:ad1+sz1-1,ad1:ad1+sz2-1,:) = img;

figure,imshow(img1)

该代码假设您想要在左右和上下均匀填充。