old blob detection
by frogggeee McFrogggeee
JavaScript
/* //console.log(blobs)
blobs = []; //2d array of blob's x, x2, and y
let layerId = 0;
let layer = [];
let blobCoords = [];
let layers = [];
let overlaps = [];
for (let i = 0; i < 36; i++) {
layer = [
[]
];
layerId = 0;
for (let j = 0; j < 48; j++) {
if (pixelArray[(i * 48) + j] == 255) {
if (pixelArray[(i * 48) + j - 1] == 0 || pixelArray[(i * 48) + j - 1] == undefined) {
layerId++;
layer.push([]);
overlaps.push(0);
}
layer[layerId].push(j);
}
}
layer.splice(0, 1);
if (blobs.length == 0) {
for (let g = 0; g < layer.length; g++) {
blobs.push([]);
blobs[blobs.length - 1].push([layer[g][0], layer[g][layer[g].length - 1], i]);
}
} else {
for (let ii = 0; ii < blobs.length; ii++) {
for (let jj = 0; jj < layer.length; jj++) {
let index = 0;
for (let k = 0; k < blobs[ii].length; k++) {
if (blobs[ii][blobs[ii].length-k-1][2] == i - 1) {
index = blobs[ii].length-k-1;
k = blobs[ii].length;
}
}
if (blobs[ii][index][2] == i - 1) {
let max = layer[jj][layer[jj].length - 1];
let min = layer[jj][0];
let lay = function (index) {
return blobs[ii][blobs[ii].length - 1][index];
}
if (lay(0) < max + 1 || lay(0) < min - 1 || lay(1) > min - 1 || lay(1) > max + 1) {
// overlapping layers
blobs[ii].push([Math.min( min), Math.max( max), i]);
overlaps[jj] = overlaps[jj] + 1;
}
}
}
}
inf(overlaps)
for (let l = 0; l < overlaps.length; l++) {
if (overlaps[l] == 0) { // amount of times a layer overlaps
//blobs.push([]);
//blobs[blobs.length -...