无法通过读取图像文件来创建直方图数据

时间:2014-01-20 10:16:41

标签: matlab image-processing histogram

我正在尝试通过读取图像文件来创建直方图数据:

>> img = imread('Flowers.jpg');
>> g = img(:,:,2);
>> bins = 0:1:255;
>> H = hist(g(:), bins);
?? Error using ==> full
Function 'full' is not defined for values of class 'uint8'.

Error in ==> C:\MATLAB\toolbox\matlab\datafun\hist.m
On line 66  ==>     xx = full(real(xx)); y = full(real(y)); % For compatibility
>> version

ans =

6.5.0.180913a (R13)

>> 

我不确定为什么会收到此错误?

1 个答案:

答案 0 :(得分:0)

如果您有图像处理工具箱,我建议您改用imhist。这将原生处理uint8图像,无需进行任何转换,并可处理二进制和灰度图像。

hist类似,您可以在没有输出的情况下调用它直接获取图像,或者获取输出并自己绘制结果。与hist不同,您只能为它提供多个容器(对于灰度,默认为256),而不是向量。

img = imread('Flowers.jpg');
g = img(:,:,2);
[counts, x] = imhist(g);
stem(x,counts); % or bar, or whatever you prefer

此处的输出x与您的bins相同。