computer vision - Not sure what this 'histogram code' is doing in MATLAB -
computer vision - Not sure what this 'histogram code' is doing in MATLAB -
i have next code given me, not sure @ logic here is. idea, believe, histogram/quantize data. here code:
the input:
x = 180.*rand(1,1000); %1000 points 0 180 degrees. binwidth = 20; %i want binwidth 20 degrees.
the main function:
% ------------------------------------------------------------------------- % compute closest bin center x1 less or equal x % ------------------------------------------------------------------------- function [x1, b1] = computelowerhistbin(x, binwidth) % bin index bin = floor(x./binwidth - 0.5); % bin center x1 x1 = binwidth * (bin + 0.5); % add together 2 1-based indexing b1 = bin + 2; end
finally, final 'quantized' data:
w = 1 - (x - x1)./binwidth
here not get: not understand - @ - why x1
computed way is, , why/how w
computed way is. in fact, of things, w
confuses me most. literally cannot understand logic here, or intended. appreciate detailed elucidation of logic. thanks.
he binning lb <= x < up
, splitting interval [0,180]
in [-10,10), [10, 30), [30,40) ..., [150,170), [170,190)
.
suppose x = 180
, then:
bin = floor(180/20-0.5) = floor(9-0.5) = floor(8.5) = 8;
while if x = 0
:
bin = floor(`0/20-0.5) = floor(-0.5) = floor(-1) = -1;
which respectively translate x1 = 20 * (8+0.5) = 170
, x1 = -10
seems function suggests lowerhistbin()
.
in end, w
measures how far point x
corresponding lower bin x1
. notice w
in (0,1], w
beingness 1 when x = x1
, approaching 0 when x -> x1+binwidth
. so, if x approaches 170, w
approach 1 - (170-150)/20 = 0
.
matlab computer-vision histogram matlab-cvst quantization
Comments
Post a Comment