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

0 votes

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)] ];

Plus de réponses (1)

Image Analyst
Image Analyst le 5 Sep 2012
Modifié(e) : Image Analyst le 5 Sep 2012

0 votes

You can use the padarray() function. It's meant for doing exactly this.
paddedArray = padarray(originalArray, [1 1]);

3 commentaires

Sabarinathan Vadivelu
Sabarinathan Vadivelu le 5 Sep 2012
Here I'm getting a size of 1025 X 1025.
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