How to pad zeros?

4 vues (au cours des 30 derniers jours)
Sabarinathan Vadivelu
Sabarinathan Vadivelu le 5 Sep 2012
I have an image whose size is 1023*1023. I want to make this image as 1024*1024 by zero padding.
A = zeros (1023,1);
I1 = horzcat (I1,A);
I2 = horzcat (I2,A);
B = zeros (1,1024);
I1 = vertcat (I1,B);
I2 = vertcat (I2,B);
Is this right?

Réponse acceptée

José-Luis
José-Luis le 5 Sep 2012
If you want to add a dark edge (that's what the zeros will be), at the bottom and to the right:
load mandrill
[m n] = size(X); %in your case it will be [1023 1023]
X = [ [X;zeros(1,n)] zeros(m+1,1)];
At the top and to the left:
load mandrill
[m n] = size(X); %in your case it will be [1023 1023]
X = [ zeros(m+1,1) [zeros(1,n);X] ];
Plus the two other alternatives, with the same principle:
X = [[zeros(1,n);X] zeros(m+1,1)];
X = [ zeros(m,1) [X;zeros(1,n+1)] ];
  1 commentaire
Andrei Bobrov
Andrei Bobrov le 5 Sep 2012
xout = zeros(size(X)+1);
xout(1:end-1,1:end-1) = X;

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 5 Sep 2012
Modifié(e) : Image Analyst le 5 Sep 2012
You can use the padarray() function. It's meant for doing exactly this.
paddedArray = padarray(originalArray, [1 1]);
  3 commentaires
Dishant Arora
Dishant Arora le 5 Sep 2012
paddedArray = padarray(originalArray, [1 1],'post');
Image Analyst
Image Analyst le 5 Sep 2012
Sorry - I misread and thought you wanted an extra zero all the way around. Thanks, Dishant, for the correction.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by