我正在尝试通过读取图像文件来创建直方图数据:
>> 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)
>>
我不确定为什么会收到此错误?
答案 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
相同。