Задать вопрос
@artur_agishev

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

604114325f6c6120761636.jpeg
Имеется набор, состоящий из фото таблицы, покрашенной в черные и белые цвета. Нужно преобразовать данное фото в матрицу, состоящую из 0 и 1, где 1 - черный цвет, 0 - белый. Как это реализовать? Мне не хватает знаний и идей выполнения данной задачи
  • Вопрос задан
  • 418 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Нет тут никаких алгоритмов. Тупо пройдитесь по изображению двумя циклами и заполните соответствующую ячейку нулем или еденицей.

На изображении квадратики размера 2x2, между ними один пиксель пустой. И по границам еще пустые пиксели. Если обрезать 1 пиксель справа и снизу, то получится, что каждой ячейке соответствует квадрат 3x3: или целиком белый, или с 4-мя черными пикселями в правом нижнем углу.

Соответственно, достаточно проверять пиксель с координатами 3*i+1, 3*j+1 для получения значения ячейки [i][j] (все индексы с 0).

Т.е. в вашем языке программирования получаете изображение в виде матрицы пикселей, потом двумя циклами до 100 заполняете все ячейки матрицы - смотрите на нужный пиксель и, если он не белый, ставите 1.

Если изображение с артефактами сжатия, то можно брать среднее между 4-мя пикселями 3*i+x, 3*j+y (x,y=1..2) по всем трем компонентам (RGB) и смотреть, что оно сильно отличается от черного. Для этого делаете еще 2 вложенных цикла по x и y, там прибавляете значение цветов пикселя в переменную, потом делите на 12 и сравниваете, допустим, с 200. Если меньше - это черный квадрат, если больше - то белый.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
цикл по y
  цикл по х
    матрица[x, y] = цвет пикселя черны? 1 : 0
Ответ написан
Комментировать
@U235U235
Воспользуйтесь imagemagick и форматом PBM.
convert 604114325f6c6120761636.jpeg -sample 100x100 -compress none out.pbm
tail -n 100 out.pbm > out.txt
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы