渐变()函数不适用于图像
问题描述:
我有一个快速的问题。我试图使用MATLAB中的gradient()
函数来计算图像2D梯度,但它不起作用。具体而言,这里是我的代码(我用的图片是灰度):渐变()函数不适用于图像
im = imread('C:\yosemite1.bmp'); g = FindImageGradients(im);
我得到以下错误:
??? Error using ==> rdivide Integers can only be combined with integers of the same class, or scalar doubles.
Error in ==> gradient at 75 g(2:n-1,:) = (f(3:n,:)-f(1:n-2,:))./h(:,ones(p,1));
如何解决这个任何线索?
答
您的图像数据可能正在读取范围[0,255]中的整数(对于每个颜色通道8位),因此im
的类型为uint8
或其他int类型。尝试将其转换为single
或double
:
g = FindImageGradients(single(im));