Bidirectional concatenation using cat (image zero-padding)

4 visualizaciones (últimos 30 días)
Sordin
Sordin el 17 de Abr. de 2017
Respondida: Jan el 17 de Abr. de 2017
I am trying to zero-pad the borders of an image by a certain amount (xPad, yPad) using the cat function. It takes four lines of code to achieve this. For instance, for the padding in the y direction I have:
[x, y] = size(Image);
padI = cat(2, Image, zeros(x,yPad));
padI = cat(2, zeros(x,yPad),padI);
Is it possible to concatenate in both directions similataneously using a single line of code (i.e., using cat only once)?
Any suggestions are greatly appreciated.

Respuesta aceptada

Jan
Jan el 17 de Abr. de 2017
You could write a function for this purpose:
function ImgP = ImagePad(Img, xPad, yPad)
siz = size(Img);
ImgP = zeros(siz + 2 * [XPad, YPad], class(Img));
ImgP(XPad + 1:XPad + siz(1), YPad + 1:YPad + siz(2)) = Img;

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by