MATLAB: Purpose of ceil in fspecial

fspecial

These are few lines from a code:
s=3;
M=imread('I.jpg');
I=rgb2gray(M);
%filter
h=fspecial('gaussian',ceil(4*s),s);
I need to know that what is the purpose of ceil in fspecial? What is it going to do?

Best Answer

  • They wanted to specify s, and the second arg must be an integer. They could have done int32(4*s) or floor(4*s) but for whatever reason they chose ceil. They wanted it to be at least as wide as 4 std dev's with the requirement that it be an integer because it's a window size in pixels. As you can find in the help for ceil(), it rounds up to the next highest integer value.