2017-02-28 55 views
0

我想将直方图分成三部分并定义三部分的范围。将直方图分为三部分

minRed = min(red(:)); 
maxRed = max(red(:)); 
AvgRed = (minRed+maxRed)/3; 
AvgRed2 = AvgRed+AvgRed; 

但有时的AvgRed值变成的AvgRed2小于minRed和值超过maxRed。什么是正确的方法来做到这一点?

+0

你能说出分工背后的逻辑是什么? – Royi

回答

0

我认为这只是简单的数学:

假设minRed = 10,并且maxRed = 100

minRed = 10; 
maxRed = 100; 

你想的范围划分为三个部分大小相等:
AvgRed40AvgRed2应是70

% minRed AvgRed AvgRed2 minRed 
% ------ ------ ------- ------ 
%1 10  40  70  100 
%| |  |  |  | 
%  <--------------------------> 
%    range 

%Calculate the range: 
range = maxRed - minRed; 

%Size of each part is third of the range. 
thirdRange = range/3; 

%Add 1/3 of range to minRed to get AvgRed (round it case value needs to be an integer). 
AvgRed = minRed + round(thirdRange); 

%Add 2/3 of range to minRed to get AvgRed2. 
AvgRed2 = minRed + round(thirdRange*2); 

当你画它很简单......