快速可视化大型二进制矩阵?

发布于 2024-10-15 09:46:34 字数 384 浏览 1 评论 0原文

我正在寻找一种简单且特别快速的可能性,将存储在文本文件中的二进制矩阵(仅由 0 和 1 组成)转换为某种绘图。黑白位图完全可以满足我的可视化目的。我尝试使用 gnuplot,但我第一次认为 gnuplot 还不够,因为我有很多数据(至少有几十个 MiB),而且内存消耗和处理时间非常糟糕。

在寻找解决方案时,我主要发现了与存储二进制(数据格式)的矩阵相关的内容以及在 gnuplot 等中读取二进制数据格式的可能性。

您知道有什么程序可以快速将文本矩阵转换为位图吗?我什至正在考虑编写一个小 C 程序来做到这一点,但由于我无法估计以这种方式创建位图有多困难,因为我以前从未做过图像处理的工作,所以使用现有的工具会很好,如果可能的。

谢谢!

I'm looking for a simple, and especially fast possibility to convert a binary matrix (consisting only of 0 and 1) stored in a text file to some kind of a plot. A black and white bitmap would completely serve my purpose of visualization. I tried with gnuplot, but I think for the first time gnuplot doesn't suffice, as I have a lot of data (dozens of MiB, at least) and the memory consumption and processing time is awful.

When searching for solutions I mostly found stuff related to matrices stored binary (data format) and the possibilities to read a binary data format in e.g. gnuplot.

Do you know of any programs that can convert a text-matrix to a bitmap fast? I'm even thinking about writing a little C program doing that, but as I can't estimate how hard it is to create bitmap that way as I've never done image processing stuff before it would be nice to use existing tools, if possible.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心安伴我暖 2024-10-22 09:46:34

使用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

这是最终结果: 在此处输入图像描述

Use netpbm. E.g.:

$ 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

Here is the end-result: enter image description here

叹倦 2024-10-22 09:46:34

我使用过的唯一通过 C 输出的图像是 C JPG 库,它可能适合也可能不适合您的需求。它不是世界上最快的东西,但它很容易使用,并且您可以在逻辑本身中执行一些快捷方式以使其更快一点。

我想到的方式实际上是迭代矩阵并根据矩阵值输出黑色或白色像素;我只是完全不确定它是否会比 gnuplot 更快或更有效。

The only image output through C that I've worked with is the C JPG library, which may or may not suit your needs. It's not the fastest thing in the world, but it's easy to work with, and there are a few shortcuts you can do in the logic itself to make it a bit faster.

The way I'm thinking of is literally iterating through your matrix and outputting a black or white pixel based on your matrix value; I'm just completely unsure as to whether or not it will be faster or more efficient than gnuplot.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文