我有一个简单的问题。我正在尝试使用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));
有关如何解决此问题的任何线索?
答案 0 :(得分:2)
您的图像数据可能被读取为[0,255]范围内的整数(每个颜色通道8位),因此im
的类型为uint8
或其他int类型。尝试将其转换为single
或double
:
g = FindImageGradients(single(im));