Быстро визуализируете большую двоичную матрицу? - PullRequest
4 голосов
/ 02 февраля 2011

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

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

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

Спасибо!

Ответы [ 2 ]

7 голосов
/ 02 февраля 2011

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

$ 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

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

0 голосов
/ 02 февраля 2011

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

...