2017-01-09 48 views
0

我想将直方图分成两个区域(通过获取直方图图像的平均强度值)。将直方图分成两个区域

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这是另一个问题,所以请在Stack Overflow上做一个单独的帖子,牢记[ask]的规则,所以在发布之前请自己尝试一下。 – Adriaan