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?

 채택된 답변

José-Luis
José-Luis 2012년 9월 5일

0 개 추천

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

Andrei Bobrov
Andrei Bobrov 2012년 9월 5일
xout = zeros(size(X)+1);
xout(1:end-1,1:end-1) = X;

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2012년 9월 5일
편집: Image Analyst 2012년 9월 5일

0 개 추천

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

댓글 수: 3

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

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터 및 File Exchange에서 Particle & Nuclear Physics에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by