离散几何查看器—图像分析和处理
由澳大利亚莫纳什大学的博士生 Shekhar Chandra 开发的离散几何查看器 (DGV) 是一款引人入胜的软件。作为一个通用软件包,DGV 及其各种扩展是用于 C++ 的量子力学工具包和 3-D 查看器。它允许通过图像、表面和体积图使用 OpenGL 进行数据可视化,以及快速开发的量子力学模拟。它使用 Blitz++、VTK 可视化和开源 Qt 库。
分解所有这些,DGV 允许您对图像进行一些非常酷的操作,无论您的兴趣是科学的还是纯粹艺术的。该程序最初是一个理论物理项目,代号为量子力学模拟器,Shekhar 的主要问题是查看实际数据,因此他编写了 DGV 来填补这一空白。随着时间的推移,Shekhar 将把更多他的博士研究工作添加到 DGV 中。
引用 Shekhar 的话,未来的改进将包括
- 查看器内的像素值。
- 保存动画。
- Python shell 而不是简单的控制台输出。请参阅我的名为 QPythonShell 的项目,该项目允许将 Python shell 嵌入到 Qt 应用程序中。
- 更多文件格式。
- 更多变换,例如数论变换(通过我的新数论变换 C 库)。
安装
单击主网站上的“下载”链接,您将被带到一个 SourceForge 托管文件页面。在“离散几何查看器”标题下,根据您的系统获取最新的软件包。提供了适用于 Linux 和 Windows 的 x86 二进制 tarball,以及源代码 tarball。我选择了二进制文件,它在我的系统上没有任何依赖性问题,并且可以直接运行。
如果您真的想从源代码编译(特别是如果您没有基于 Intel 的机器),您可以从源代码编译,但需求列表相当严格,对于许多系统来说可能有点晦涩难懂(有关更多详细信息,请参阅项目网站)。
下载并解压 tarball,然后在新文件夹中打开一个终端。要运行该程序,请输入
$ ./dgv
用法
首先,您需要导入图片。任何图片都可以,但就数字运算而言,分辨率较小(例如 800x600)且宽高比常见(例如 4x3 或 16x9)的图片会更容易,因为您和计算机最终都会进行相当多的数学运算。使用“文件”→“打开”打开您喜欢的任何图像,图像将显示在屏幕上。出现的图像可能以灰度显示,具体取决于发布版本,但不要担心,它不一定会保持这种状态。
现在,让我们直接进入程序最酷的功能。右键单击图像,然后从下拉框中选择“带有图像的表面图”。然后,稍等片刻。有很多数学运算要处理,但如果您幸运的话,这将是一个快速的过程。现在屏幕上将出现一个新的 3-D 景观(并恢复彩色),可以实时移动和旋转,并从任何角度观看。
DGV 从我的旧鼓组照片创建 3-D 纹理
我的旧鼓组
DGV 从我车内的一张照片制作了这个令人惊叹的 3-D 景观!
左键单击并向前和向后移动鼠标,世界会相应倾斜。向右或向左移动鼠标,世界会朝该方向旋转。按住 Ctrl 的同时移动鼠标,图像会在您面前像在 2-D 平面上一样顺时针或逆时针旋转。按住 Shift 或鼠标中键,然后移动鼠标,您可以在屏幕内水平或垂直物理拖动对象。
如果您发现默认值及其产生的景观有点粗糙(甚至有点微妙),请右键单击图像并选择“比例因子”。减小给定的值,生成的地形会变得更小,更接近原始图像。这可用于应用一些非常微妙的图像增强,效果极佳。增加给定的值,地形的凹凸不平程度会变得更大,更夸张。
然而,就其本身而言,这更像是一种炫耀给朋友们的噱头。该项目的核心是其数学和绘图能力,以及操纵图像的技术,可以产生一些令人惊叹的结果。
让我们用一些更传统的东西来看看实际效果。关闭任何工作项目窗口,然后从头开始,使用基本的 2-D 图像。打开文件后,右键单击图像本身,然后从下拉框中选择“数据”。将生成一个数据表,而这个表尤其重要。
数字的每个单元格都包含影响您从此表生成的任何几何图形或效果的信息。用英语来说,如果您知道自己在做什么,您可以手动控制最终图像的呈现方式。让我们以快速傅里叶变换为例。(为了节省空间,我们将使用我的工作文件名 whole-kit.jpg。用您自己的文件替换它。)
右键单击表格,然后选择“变换”→“傅里叶”→“FFT”。片刻之后,一个点状灰度图片将出现在原始图像上方的单独窗口中。现在,将这两个图像组合成最终图像。从上面的菜单中单击“数据”→“操作”。在新对话窗口中,在“操作”下选择“乘法”,在“数据源 1”下选择“whole-kit.jpg”,在“数据源 2”下选择“图像:FFT-whole-kit.jpg”。然后,就出现了一个漂亮的新图像!原始图像将与颗粒状 FFT 图像结合,从而使每个图片都具有独特的外观。
FFT 图像示例
我们在这里只触及了皮毛,因此非常值得查看 Shekhar 的教程 (code.google.com/p/discrete-geometry-viewer/wiki/Home) 和博客 (l3mmings.blogspot.com),以了解该程序真正能够做什么(并就本文中可能存在的任何不准确之处向 Shekhar 致歉)。对于任何想要探索图像处理这个非常不同领域的人来说,DGV 绝对值得一看。
离散几何查看器—图像分析和处理 (qcplusplus.sourceforge.net)