【发布时间】:2017-11-30 09:28:48
【问题描述】:
我已将画布图像的像素矩阵转换为二进制矩阵(0 = 黑色,1 = 其他颜色)。该矩阵显示如下:
var matrix = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 1, 1, 1, 1, 0, 0, 0],
[1, 1, 0, 1, 0, 0, 0, 1, 0, 0],
[1, 0, 0, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 1, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 1, 1, 0],
[0, 1, 0, 1, 0, 0, 0, 1, 1, 1],
[0, 1, 0, 1, 1, 0, 0, 1, 1, 0],
[0, 1, 1, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
];
如果你看它,1 是图像的元素。 我如何分离该矩阵的元素?我必须检查每个位置,每当我找到 1 时,如果我周围还有其他 1(上、下、左、右或对角线) 并将它们保存在不同的数组中
for(var y = 0; y < contFilas; y++) {
for(var x = 0; x < contColumnas; x++) {
if (matrix[y][x]== 1) {
//check if there are more 1 around
}
}
}
我期望的结果类似于:
ElementArray1 = [...] // elements of a region with positions
ElementArray2 = [...]
ElementArray3 = [...]
//as many arrays as there are elements
For example, the ElementArray1 contains:
[(0,4),(0,5),(1,3),(1,4),(1,5),(1,6),(2,5),(2,6)] //first figure of 1s
【问题讨论】:
-
请添加想要的结果。
-
你确定你有矩阵吗?
-
已编辑和更正!谢谢!
标签: javascript loops matrix