Add pad array for image only to top and bottom

13 次查看(过去 30 天)
I want to add pad array to a given image, for top and bottom sides only. How can I do this
**I don't want black outline it is only for illustration
I have used this code but it appears in only left and right sides only
rgbImage = imread('image path');
[heigth,width,dim] = size(rgbImage);
if heigth>width
cal=(heigth-width)/2;
calculatedWidth=double(fix(cal));
paddedImage = padarray(rgbImage,[0 calculatedWidth],255);
else
cal=(width-heigth)/2;
calculatedHeigth=double(fix(cal));
paddedImage = padarray(rgbImage,[0 calculatedHeigth],255);
end
imshow(paddedImage);
*output image that I have got

采纳的回答

Guillaume
Guillaume 2016-10-2
Isn't the problem obvious if you read the documentation of padarray?
The first element of the 2nd argument of padarray is the padding top and bottom, the 2nd element is the padding left and right. You always specify 0 even when you want to add top and bottom.
Replace the second padarray call by:
paddedImage = padarray(rgbImage,[calculatedHeigth 0],255); %swapped the elements of padsize

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Image Processing Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by