`
huozheleisi
  • 浏览: 1291250 次
文章分类
社区版块
存档分类
最新评论

Data Visualization

阅读更多

Data Visualization

-Scalar Visualization

Data Visualization

Data Visualization(数据可视化)是计算机图形领域中比较前沿的学科。它涉及了很多方面的知识,这篇文章通过一个实际的例子(scalar visualization)来简单地为大家介绍一下数据可视化的概念。网络上也有很多免费的开源的用于数据可视化的API或工具。比如著名的VTK,它是The Visualization Toolkit的简称,VTK是个用c++写的类库,并且它是开源的。有兴趣的朋友可以要官网http://www.kitware.com/vtk下载。除了VTK,还有很多其他的可视化软件,比如AVS,IRIS Explorer,SCIrun,ParaView,还有专门用于医学图形的The Insight Toolkit, 3DSlcer,
Teem等等。

Scalar Visualization是数据可视化中的一种技术之一。和其它技术相比,比如Vector Visualization,Tensor Visualization,Domain-Modeling Techniques,Image Visualization,Volume Visualization,information Visualization等,scalar Visualization是相对比较容易的。应为它处理的数据是scalar型的。在进行数据可视化处理的时候,一般要遵循Visualization Pipeline(可视化管线),就像计算机图形学中的管线一样,可视化管线一般分为四个阶段:data importing,data filtering和enrichment,data mapping,data rendering。

dv01

Import阶段是输入原始数据的阶段,获得原始数据的方法很多。后面展示的例子中,我们定义的数组也是一种原始数据。Filter阶段是数据过滤的阶段,比如数据的抽样(sampling),如果数据的原始数据是连续的话,比如方程,在数学上它是个连续函数。计算机没有能力处理连续的数据,所以在Filter阶段要对数据进行抽样,这个函数的定义域是xy平面上所有的点的集合,于是我们可以在xy平面上抽样,比如用100x100个点组成的矩形区域。Map阶段是对抽样处理后,得到的结果数据进行加工。比如着色,贴图,光照等等。Render是最后把结果显示在输出设备的阶段。

Scalar Visualization

可视化scalar数据是常常要碰到的,比如气压图等等。而Color Mapping和Contouring(作等值线)是scalar visualization常用的技术。下面来分别介绍。

Color Mapping

要进行color mapping,我们要把输入的scalar数据变换成颜色值。这样的方法也很多,这里介绍一种最简单的。

通过上面的公式可以得到一个由颜色值组成的Color Table,f就是scalar的值。这里用函数f的形式来表现。下面我们来创建一个rainbow colormap。rainbow colormap中值越小越接近蓝色,值越大越接近红色,如下图。

dv02

比如气温图中,温度高的我们用红色表示,温度低我们用蓝色表示,这样设计比较符合我们的习惯。还有气压图,高度图也一样。下面给出实现代码:

  1. voidColor(floatf,float&R,float&G,float&B)
  2. {
  3. constfloatdx=0.8;
  4. f=(f<0)?0:(f>1)?1:f;
  5. floatg=(6-2*dx)*f+dx;
  6. R=max(0,(3-fabs(g-4)-fabs(g-5))/2);
  7. G=max(0,(4-fabs(g-2)-fabs(g-4))/2);
  8. B=max(0,(3-fabs(g-1)-fabs(g-2))/2);
  9. }
  10. voidCreateColorMap()
  11. {
  12. floatR,G,B;
  13. for(inti=0;i<257;i++)
  14. {
  15. Color(i/256.0,R,G,B);
  16. colorMap[i][0]=(GLubyte)(R*256);
  17. colorMap[i][1]=(GLubyte)(G*256);
  18. colorMap[i][2]=(GLubyte)(B*256);
  19. }
  20. }
Color()方法是根据f值计算颜色值。下面的CreateColorMap()方法就是创建一个有256个颜色的color table。有了Color Map后,就可以进行贴图操作了。有两种方法可以使用,一是Vertex-based color mapping,一是Texture-based color mapping。后面就会看到这两种方法的差别,Texture-based color mapping要比Vertex-based color mapping方法好的多。

Contouring(等值线)

等值线在实际应用中比较多见。比如等压线,等高线等等。顾名思义,等值线就是拥有相等值的点连接成的线。这里有两个方面的问题要解决。一是如果找到相等值的点,另一个是找到了等值点后,要如何连接。

先来讨论第一个要解决的问题。看下面图中左边的正方形,四个顶点的值都不相同。这里的值不是顶点的坐标,这里的顶点包含了坐标和一个值。顶点A,B,C,D如左图所示,

dv03

如果我们要在四个顶点之间找到0.48这个点的位置,应该怎样找呢?算法很简单,利用插值就可以了。如果我们要插入点的位置坐标为q,那么有:

上式中是插值的两个端点,是它们所对应值。结果说明q是两个顶点的线性插值。最后的结果如上面右图中蓝色的点。

接着的问题是,现在找到了点,我们要如何连接它们。上面的图形很简单,只有这2个点,当然直接连接起来就可以了。但是如果我们有很多这样的矩形(cell),而且等值点也很多,计算机是不知道要怎样连接它们的,所以我们必须找到一个正确的方法来连接这些点。一个被广泛应用的技术叫做marching squares。每个四边形称作cell,marching squares的基本思想就是检查cell的四个顶点所拥有值和我们要插入的值value的大小,如果这个顶点所拥有的值比value小的话,那么称cell的顶点在等值线内。反之则称作cell的顶点在等值线外。对于四边形,它拥有种情况,我们可以用4为2进制数来保存这些状态。如下图。

dv04

上面列出了所有的16中情况,红色的顶点是测试在等值线内的顶点。0101的情况和1010的情况是有二义性的,因为当这种两种情况出现时,也可以按图中虚线的情况连接,所以这种情况我们就要指定一种。

两个关键的问题现在我们已经解决了,下面是利用这些技术实现的一个scalar visualization的例子。右图是采用Textur-based color mapping,左图是采用Vertex-basedcolor mapping。可以明显看出它们的差别。

2images

http://blog.csdn.net/zhangci226/article/details/4065785

分享到:
评论

相关推荐

    qt data visualization 5.7.1 源码

    QT Data Visualization 5.7.1 是一个强大的开源库,专为在Qt应用程序中创建丰富的数据可视化体验而设计。这个库允许开发者通过2D和3D图形来展示复杂的数据,从而帮助用户更好地理解和分析信息。在5.7.1版本中,QT ...

    Qt Data Visualization 源码包

    Qt Data Visualization 是一个强大的库,用于在Qt框架内创建丰富的2D和3D数据可视化应用。这个源码包,名为"qtdatavis3d-opensource-src-5.7.0-beta",提供了Qt Data Visualization模块的源代码,用于深入理解和...

    QtDataVisualization5.7.0.zip

    QtDataVisualization是Qt框架的一部分,专门用于数据可视化。在Qt 5.7.0这个版本中,它提供了丰富的2D和3D图形组件,帮助开发者创建高质量的数据展示应用。这个库支持各种图表类型,如折线图、柱状图、饼图、散点图...

    Qt5 Data Visualization 3D官方教程配套示例代码

    "QT += datavisualization" in the pro file. This is because Qt Data Visualization QML plugin has a dependency to Qt Data Visualization C++ library, which Qt Creator doesn't automatically add to the ...

    System.Windows.Forms.DataVisualization.dll 3.5 版本

    《System.Windows.Forms.DataVisualization.dll在FastReport.Net中的应用与解析》 在.NET开发环境中,FastReport.Net是一款广泛应用的报表设计和生成工具,它提供了丰富的报告设计功能,能够满足各种复杂的报表需求...

    解决WIN10操作系统DataVisualization原因无法生成项目

    在Windows 10操作系统中,当你尝试使用Fastreport进行项目生成时,可能会遇到与DataVisualization组件版本不兼容的问题。这通常表现为错误提示“此文件版本不一致,DataVisualization, Version=3.5.0.0”。这个错误...

    OpenGL Data Visualization Cookbook

    of-the-art wearable computing devices, Who This Book Is For, This book is aimed at anyone interested in creating impressive data visualization tools using modern graphics hardware. Whether you are a ...

    Mastering Python Data Visualization(PACKT,2015)

    What You Will Learn Gather, cleanse, access, and map data to a visual framework Recognize which visualization method is applicable and learn best practices for data visualization Get acquainted with ...

    System.Windows.Forms.DataVisualization.dll3.5版等图表控件

    在WinForm应用程序中要想使用该图表控件,需引用的DLL:System.Windows.Forms.DataVisualization.dll3.5版、在Web应用程序中要想使用该图表控件,需引用的DLL:System.Web.DataVisualization.dll、System.Web.Data...

    MSChart (System.Windows.Forms.DataVisualization .NET 4.0)

    在.NET Framework 4.0中,`System.Windows.Forms.DataVisualization`命名空间包含了MSChart的所有相关类和方法,这些类提供了创建、定制和操作图表所需的功能。这个命名空间中的主要类有: 1. `Chart`: 这是MSChart...

    Interactive Data Visualization for the Web(2nd) mobi

    Interactive Data Visualization for the Web(2nd) 英文mobi 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    System.Web.DataVisualization.dll

    分析器错误消息: 未能加载文件或程序集“System.WEB.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。 那么把这个文件放到bin...

    QtDataVisualization.7z

    QtDataVisualization是一个基于Qt框架的数据可视化库,它允许开发者创建丰富的2D和3D图形,如图表、曲线、散点图等,适用于科学计算、数据分析、监控系统等多种场景。这个库是Qt生态系统的一部分,提供了直观的API来...

    System.Windows.Forms.DataVisualization Demo案例

    针对 System.Windows.Forms.DataVisualization 这个dll的案例, 帖子地址:https://blog.csdn.net/qq_38693757/article/details/124348233?spm=1001.2014.3001.5501 平台使用的是Winfrom,当然在WPF平台也可以使用

    Multiple Data Visualization Resources 中控大屏可视化插件

    《中控大屏可视化插件:Multiple Data Visualization Resources》 在现代数据分析与展示领域,数据可视化扮演着至关重要的角色。"Multiple Data Visualization Resources" 提供的 "Multiple_Graph_And_Chart_UI_...

    System.Windows.Controls.DataVisualization.Toolkit.dll

    System.Windows.Controls.DataVisualization.Toolkit.dll C#开发常用dll

    Lattice Multivariate Data Visualization with R

    《Lattice Multivariate Data Visualization with R》是一本专注于利用R语言进行多元数据可视化的专业书籍。作者通过283页的详细内容,深入浅出地介绍了如何借助Lattice包来高效且美观地呈现复杂的数据结构。这本书...

    R Graphics Essentials for Great Data Visualization

    R Graphics Essentials for Great Data Visualization: +200 Practical Examples You Want to Know for Data Science By 作者: Mr Alboukadel Kassambara ISBN-10 书号: 1979748101 ISBN-13 书号: 9781979748100 ...

Global site tag (gtag.js) - Google Analytics