Перевод фото таблицы в матрицу из 0 и 1?

Имеется набор, состоящий из фото таблицы, покрашенной в черные и белые цвета. Нужно преобразовать данное фото в матрицу, состоящую из 0 и 1, где 1 - черный цвет, 0 - белый. Как это реализовать? Мне не хватает знаний и идей выполнения данной задачи

Изображение


Ответы (2 шт):

Автор решения: MBo

Псевдокод несложный

for y = 0..99
   for x = 0..99
      A[y][x] = 1 - pixel(3*y,3*x)

А как pixel() реализовать - зависит от используемой графической библиотеки и формата изображения.

→ Ссылка
Автор решения: wololo

JavaScript:

function get_data(src) {
    let image = new Image();
    image.crossOrigin = "anonymous";
    image.src = src;
    
    let res = new Promise(resolve => {
        image.onload = () => {
            let context = document.createElement("canvas").getContext("2d");
            context.canvas.width = image.naturalWidth;
            context.canvas.height = image.naturalHeight;
            context.drawImage(image, 0, 0);
        
            let image_data = context.getImageData(0, 0, context.canvas.width, context.canvas.height);
            let pixels = image_data.data;
            let matr = [];
            for (let row = 1; row < image_data.height; row += 3)
            {
                let matr_row = [];
                for (let col = 1; col < image_data.width; col += 3)
                {
                    let index = row * 4 * image_data.width + 4 * col;
                    let [red, green, blue] = [pixels[index+0], pixels[index+1], pixels[index+2]];
                    let bit = (red + green + blue) / 3 > 127 ? 0 : 1;
                    matr_row.push(bit);
                }
                matr.push(matr_row);
            }
            resolve(matr);
        };
    });
    return res;
}

get_data("https://i.ibb.co/Qb0yFQ4/test.png").then(matr => {
    let res_html = "";
    for (let row = 0; row < matr.length; ++row)
        res_html += "row: " + String(row).padStart(2, "0") + "&emsp;" + matr[row].join("") + "<br>";
    document.getElementById("div_id").innerHTML = res_html;
});
#div_id {
    font-family: monospace;
}
<div id = "div_id"></div>

→ Ссылка