2014-01-20 2 views
1

Я пытаюсь создать гистограмму данных при считывании файла изображения:Не удается создать гистограмму данных при считывании файла изображения

>> 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) 

>> 

Я не знаю, почему я получаю эту ошибку?

+2

заменить вторую строку на 'g = double (img (:,,, 2));' – Adiel

+0

Спасибо, что она отлично работала – Prakash

ответ

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.

Смежные вопросы