我的图片大小为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列。)
任何帮助都会受到赞赏。提前谢谢。
答案 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)
该代码假设您想要在左右和上下均匀填充。