MATLAB错误
Undefined function 'conv2' for input arguments of type 'double' and attributes 'full 3d real'.
原因:Color images are 3 dimensional arrays (x,y,color). conv2
is only defined for 2-dimensions, so it won't work directly on a 3-dimensional array.
解决办法:
Three options:
-
Use an n-dimensional convolution,
convn()
-
Convert to a grayscale image using
rgb2gray()
, and filter in 2D:filter_g = conv2(gauss,rgb2gray(img_double));
-
Filter each color (RGB) separately in 2D:
filter_g = zeros(size(im_double)); for i = 1:3 filter_g(:,:,i) = conv2(gauss, im_double(:,:,i); end