class Caman.Analyze
constructor: (@c) ->
Various image analysis methods
class Caman.Analyze
constructor: (@c) ->
Calculates the number of occurances of each color value throughout the image. @return {Object} Hash of RGB channels and the occurance of each value
calculateLevels: ->
levels =
r: {}
g: {}
b: {}
Initialize all values to 0 first so there are no data gaps
for i in [0..255]
levels.r[i] = 0
levels.g[i] = 0
levels.b[i] = 0
Iterate through each pixel block and increment the level counters
for i in [0...@c.pixelData.length] by 4
levels.r[@c.pixelData[i]]++
levels.g[@c.pixelData[i+1]]++
levels.b[@c.pixelData[i+2]]++
Normalize all of the numbers by converting them to percentages between 0 and 1.0
numPixels = @c.pixelData.length / 4
for i in [0..255]
levels.r[i] /= numPixels
levels.g[i] /= numPixels
levels.b[i] /= numPixels
levels
Analyze = Caman.Analyze