Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Быстро визуализировать большую бинарную матрицу?

Автор вопроса: tmrОтветов: 2

Я ищу простую и особенно быструю возможность преобразовать двоичную матрицу (состоящую только из 0 и 1), хранящуюся в текстовом файле, в какой-то график. Черно-белое растровое изображение полностью удовлетворило бы мою задачу визуализации. Я пробовал с gnuplot, но думаю, что для первого раза gnuplot недостаточно, так как у меня много данных (по крайней мере, десятки мегабайт), а потребление памяти и время обработки ужасное.

При поиске решений я в основном находил материалы, связанные с матрицами, хранящимися в двоичном формате (формат данных), и возможностями чтения двоичного формата данных, например. гнуплот.

Знаете ли вы какие-либо программы, которые могут быстро преобразовывать текстовую матрицу в растровое изображение? Я даже подумываю написать небольшую программу на C, которая делает это, но поскольку я не могу оценить, насколько сложно создать растровое изображение таким образом, поскольку я никогда раньше не занимался обработкой изображений, было бы неплохо использовать существующие инструменты, если возможный.

Спасибо!

bitmapplotmatrixasciignuplot

Ответы

Ответ 1 · рейтинг 7 · Marcelo Cantos

Используйте нетпбм. Например.:

$ cat | pnmtopng > circle.png
P1
10 10
0001111000
0111111110
0111111110
1111111111
1111111111
1111111111
1111111111
0111111110
0111111110
0001111000
$ file circle.png
circle.png: PNG image, 10 x 10, 1-bit grayscale, non-interlaced

Вот конечный результат:

Ответ 2 · sichinumi

Единственное изображение, выводимое через C, с которым я работал, - это библиотека C JPG, которая может соответствовать или не соответствовать вашим потребностям. Это не самая быстрая вещь в мире, но с ней легко работать, и есть несколько сокращений, которые вы можете сделать в самой логике, чтобы сделать ее немного быстрее.

То, о чем я думаю, буквально повторяет вашу матрицу и выводит черный или белый пиксель на основе значения вашей матрицы; Я просто совершенно не уверен, будет ли это быстрее или эффективнее, чем gnuplot.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы