颜色直方图

时间:2017-03-21 01:44:48

标签: colors

我正在尝试计算图像的直方图。我正在使用以下公式来计算bin

x

我必须实现以下Matlab函数。

%bin = red*(N^2) + green*(N^1) + blue;

当我运行代码时,我收到以下错误消息“下标索引必须是真正的正整数或逻辑。”

由于我是Matlab和图像处理的新手,我不确定问题是实现算法还是语法错误。

1 个答案:

答案 0 :(得分:1)

您的代码有3个问题。 (如果你认为你的累加器向量从F变为bin,则为四,但我认为这是一个错字。)

首先,如果给定像素的值较低,则变量F(0)在任何时刻都可以为零。 F(bin+1)不是矢量或矩阵的有效索引。这就是你得到这个错误的原因。

您可以通过F轻松解决,并请注意,您的bin + 1向量会将您的值移到一个位置。

第二个错误,您要将值F分配给累加器向量F(bin+1) = F(bin+1) + 1;,这不是您想要的,您希望每次找到该范围内的像素时添加1,你是什么应该做的是F。这样,bin = red*(N^2) + green*(N^1) + blue;的值将一直在增加。

第三个错误更简单,您忘记实施{{1}}等式