gradient()函数不能处理图像

时间:2010-11-28 04:50:23

标签: matlab

我有一个简单的问题。我正在尝试使用MATLAB中的gradient()函数计算图像2D渐变,但它不起作用。具体来说,这是我的代码(我正在使用的图像是灰度):

im = imread('C:\yosemite1.bmp'); g = FindImageGradients(im);

我收到以下错误:

  

???使用==>时出错rdivide整数   只能与整数相结合   同一个班级,或标量双打。

     

==>中的错误渐变在75         g(2:n-1,:) =(f(3:n,:)) - f(1:n-2,:))。/ h(:,(p(1));

有关如何解决此问题的任何线索?

1 个答案:

答案 0 :(得分:2)

您的图像数据可能被读取为[0,255]范围内的整数(每个颜色通道8位),因此im的类型为uint8或其他int类型。尝试将其转换为singledouble

g = FindImageGradients(single(im));