【问题标题】:Quickly visualizing a large, binary matrix?快速可视化一个大的二进制矩阵?
【发布时间】:2011-02-02 08:12:45
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: matrix bitmap ascii plot gnuplot


    【解决方案1】:

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

    这是最终结果:

    【讨论】:

    • 谢谢,这正是我想要的。我知道会有一个合适的 UNIX CLI 工具,如果一个人不知道要寻找什么就很难找到 ;-)
    • @user279714:是的,“netpbm”并不是第一个想到的东西,嗯?顺便说一句,我花了很长时间才找到手册页的在线列表,结果发现这是在主文档页面上偷偷放置的链接到 netpbm.sourceforge.net/doc/directory.html
    【解决方案2】:

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

    我正在考虑的方式实际上是遍历您的矩阵并根据您的矩阵值输出黑色或白色像素;我只是完全不确定它是否会比 gnuplot 更快或更有效。

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 2016-10-03
      • 2018-12-12
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      相关资源
      最近更新 更多