Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为图像添加填充-Matlab_Matlab_Padding - Fatal编程技术网

为图像添加填充-Matlab

为图像添加填充-Matlab,matlab,padding,Matlab,Padding,我有一个小图像,大小为89x56px,是RGB 我试图在图像周围添加填充,直到两者(x,y)都大于64px 我试着通过阅读以下内容来实现这一点:但没有运气: img = subImage{1}; %small image 89x56 new(size(subImage{1},1),64)=0; %zero matrix for padding size(new); merged = img; %also tried

我有一个小图像,大小为
89x56px
,是RGB

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

我试着通过阅读以下内容来实现这一点:但没有运气:

  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)
理想情况下,我甚至希望填充图像的每一面。eg 64-56=8;因此,每边有4列0(如果太难的话,在末尾只有8列)

任何帮助都将不胜感激。提前感谢。

代码

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)

代码假定您希望在左侧和右侧以及顶部和底部均匀填充。

既然您有
imshow
,您也应该有:

pad=[64 0]-大小(img);

pad(padAh)很酷。我刚刚读到了padarray。非常方便的功能。谢谢你完美的回答:D这很好知道。特别是对于相等的填充。谢谢你发帖(:条件不应该大于或等于64px吗?应该是的。很好的发现:D谢谢发帖。
pad = [64 64 0] - size(img);
pad(pad<0) = 0;
merged = padarray(img, floor(pad./2));