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 MATLAB 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