Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
// noprotect
(function() {
    var width = 500;
    var height = 500;
    var size = width * height;
    var data = new Uint8Array(size * 3);
    var x_histogram;
    var y_histogram;
    var fill_data = function(data) {
        for(var i = 0; i < data.length; i++) {
            data[i] = parseInt(Math.random() * 255);
        }
        x_histogram = new Uint16Array(width);
        y_histogram = new Uint16Array(height);
    };
    var calc_histogram = function() {
        for(var x = 0; x < width; x++) {
            for(var y = 0; y < height; y++) {
                var i = (y * width + x) * 3;
                var r = data[i];
                var g = data[i + 1];
                var b = data[i + 2];
                var green = is_green(r, g, b);
                x_histogram[x] += green;
                y_histogram[y] += green;
            }
        }
    };
    var is_green = function(r, g, b) {
        return (g > 80) && (g > r + 35) && (g > b + 35);
    };
    var main = function() {
        for(var i = 0; i < 10; i++) {
            fill_data(data);
            var t1 = Date.now();
            calc_histogram(data, x_histogram, y_histogram);
            var t2 = Date.now();
            console.log('test ' + i + ': ' + (t2 - t1) + ' ms');
        }
    };
    main();
})();
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers