【问题标题】:"Mixed integer class inputs are not supported" Error“不支持混合整数类输入”错误
【发布时间】:2015-09-26 22:39:03
【问题描述】:

我正在使用 Matlab 进行一个项目,我必须使用 gradient 函数。以下是我的代码 sn-p:

im=imread('A.jpg'); //Reads image File [Ix,Iy]=gradient(rgb2gray(im));

我收到以下错误。

使用 bsxfun 时出错

不支持混合整数类输入。

渐变错误(第 68 行)

g(2:n-1,:) = bsxfun(@rdivide,(f(3:n,:)-f(1:n-2,:)),h);

我无法理解为什么会出现此错误以及如何解决它。

PS:我知道有很多问题与相同的错误相关,但它们是由于不同的原因造成的。我已经通过了它们,但不是为了解决我的问题。

【问题讨论】:

  • 试试imgradient,它支持整数数据类型。

标签: matlab image-processing


【解决方案1】:
  1. 加载图片。
  2. 如有必要,请使用 rgb2grey。
  3. 使用 im2double
  4. 使用梯度函数,即 [fx,fy]=gradient(image)
  5. 使用matlab函数quiver(fx,fy)得到显示的结果。

阿桑拉提夫

【讨论】:

    【解决方案2】:

    你应该试试[Ix, Iy] = gradient(double(rgb2gray(A)))。或者,正如丹尼尔建议的那样,使用imgradient

    【讨论】:

    • 使用 double 转换图像会导致问题,因为未完成重新缩放到 0..1 范围。大多数 im* 函数期望双图像在 0..1 范围内,使用 im2double 代替将图像转换为双图像。
    猜你喜欢
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2022-12-17
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2021-01-20
    相关资源
    最近更新 更多