2017-01-09 5 views
0

Я хочу разделить гистограмму на две области (взяв значение интенсивности avg для изображения гистограммы).Разделить гистограмму на две области

hR = imhist(redChannel); 
minRed = min(redChannel(:)); 
maxRed = max(redChannel(:)); 
avgRed = (minRed+maxRed)/2; 
hlowR = hR(1:avgRed); 
hhighR = hR(avgRed:256); 

hlowR дает значения, но hhighR пуст. Я не знаю, что случилось. Пожалуйста помоги. Благодаря

+1

Какова ценность 'avgRed'? –

ответ

5
hR = imhist(redChannel); 
% minRed = min(redChannel(:)); 
% maxRed = max(redChannel(:)); 
% avgRed = (minRed+maxRed)/2; 
avgRed = mean(redChannel(:)); % get mean directly 
hlowR = hR(hR<=avgRed); % Logical index to find all values below the average 
hhighR = hR(hR>=avgRed);% Logical index to find all values above the average 

Вы используете avgRed непосредственно в качестве индекса, в то время как вы должны проверить, является ли значение hR выше или ниже его, используя logical indexing.

+0

Спасибо за ваш ответ. Не могли бы вы рассказать мне, как я могу растянуть гистограмму в каждом регионе? –

+0

@BENISHAMIN это еще один вопрос, поэтому, пожалуйста, сделайте отдельное сообщение о переполнении стека, имея в виду правила [ask], поэтому попробуйте что-нибудь самостоятельно, прежде чем публиковать здесь. – Adriaan

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