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?

 Akzeptierte Antwort

José-Luis
José-Luis am 5 Sep. 2012

0 Stimmen

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

Weitere Antworten (1)

Image Analyst
Image Analyst am 5 Sep. 2012
Bearbeitet: Image Analyst am 5 Sep. 2012

0 Stimmen

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

3 Kommentare

Sabarinathan Vadivelu
Sabarinathan Vadivelu am 5 Sep. 2012
Here I'm getting a size of 1025 X 1025.
Dishant Arora
Dishant Arora am 5 Sep. 2012
paddedArray = padarray(originalArray, [1 1],'post');
Image Analyst
Image Analyst am 5 Sep. 2012
Sorry - I misread and thought you wanted an extra zero all the way around. Thanks, Dishant, for the correction.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Particle & Nuclear Physics finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by