Metro作为一个非常好用的简化网格比较工具,在科研界几乎算是标准了。不过很多比较牛的作者会使用自己设计的一些比较算法,但是如果metro够用了也就不必那么麻烦了,毕竟Metro使用的方法还算是很成熟了。不得不说,VCG这些人太惜字如金了,一些很基本的东西说的相当不够详细,只好自己努力搜寻了一些资料。

有个地址需要fanqiang才能访问

http://meshlabstuff.blogspot.com/2010/01/measuring-difference-between-two-meshes.html

http://vcg.isti.cnr.it/activities/surfacegrevis/simplification/metro.html

这里有最新的下载链接,sourceforge的,当然还有源码:

http://sourceforge.net/projects/vcg/files/metro/

当然,论文才是了解这个工具最好的窗口,只是论文相对有些老。

但是作为一个纯科研的项目,其和那些成熟的工程类的工具比起来,还是有很多不方便的地方,首当其冲就是使用说明书不完善,也没有相应的论坛或者问答机制回答初学者的问题,网上相关的资料也少(就他们自己写的那几篇)。

OK,下面来讲下我自己遇到的问题。

我用的是最新的metro4.07。以下是一个metro输出的样例:

-------------------------------
Metro V.4.07
http://vcg.isti.cnr.it
release date: May 11 2007
------------------------------- read mesh `XXX.ply'
Removed 0 duplicate and 0 unreferenced vertices from mesh XXX.ply
read mesh `YYY.ply'
Removed 5 duplicate and 3841 unreferenced vertices from mesh YYY.ply
Mesh info:
M1: 'XXX.ply'
vertices 2400610
faces 4786342
area 249717.8967
bbox (25.1502 35.4685 0.0000)-(166.6869 199.6000 190.0000)
bbox diagonal 288.221771
M2: 'YYY.ply'
vertices 1078709
faces 2153443
area 249189.0805
bbox (25.4688 35.4680 -0.1387)-(166.6808 199.6717 190.0403)
bbox diagonal 288.221710 Forward distance (M1 -> M2):
target # samples : 47863420
target # samples/area : 191.669963
Vertex sampling
Edge sampling
Similar Triangles face sampling distances:
max : 13.545480 (0.043946 wrt bounding box diagonal)
mean : 0.007310
RMS : 0.077103
# vertex samples 2400610
# edge samples 36665001
# area samples 6397199
# total samples 45462810
# samples per area unit: 182.056675 Backward distance (M2 -> M1):
target # samples : 47863420
target # samples/area : 192.076715
Vertex sampling
Edge sampling
Similar Triangles face sampling distances:
max : 0.199435 (0.000647 wrt bounding box diagonal)
mean : 0.004265
RMS : 0.006333
# vertex samples 1078709
# edge samples 24402286
# area samples 21303713
# total samples 46784708
# samples per area unit: 187.747825 Hausdorff distance: 13.545480 (0.043946 wrt bounding box diagonal)
Computation time : 186088 ms
# samples/second : 495719.840175

关于三个度量结果,max是最大距离,mean是平均距离,RMS是对距离值(有正有负)求平方之后所得的平均值再开方(可见Wiki百科)。

结果里面,

max  : 13.545480 (0.043946  wrt bounding box diagonal)

中的wrt让人很费解,看了上面给出的第二个链接,才知道原来是with respect to的缩写,汗!

另外,一开始分析结果时,发现后面给出的相对于包围盒对角线的比值0.043946有些诡异,如果用13.545480除以前面的bbox diagonal值根本不是这个结果!纠结了老半天,终于从论文里得到了答案,论文里metro的结果展示如下:

为何每个误差值后面有两个百分号?用直觉认为正确的方法算一下,比如

3.3314/345.234=0.009649

正好是前一个百分比值,那后一个是啥?

等等,Bbox Diag下面是不是有个Diameter?应该是包围球的直径,用原来的绝对误差值3.3314除以它,正好等于0.010068。

好了,看来为何相对于包围盒对角线的误差不是我们想的那样的原因找到了,就是metro4.07在得出相对于包围盒对角线的误差时,用的却是包围盒直径。这肯定算个比较严重的bug了吧,唉,害得我纠结了不止一个晚上。

http://sourceforge.net/projects/vcg/files/metro/

关于网格比较工具metro使用的几点注意事项的更多相关文章

  1. 初识 Istio - 服务网格管理工具

    What is a service mesh(服务网格)? 微服务在国内流行已经多年了,大多数公司选择了基于容器化技术( Docker )以及容器编排管理平台 ( Kubernetes )落地微服务 ...

  2. PHP性能分析工具xhprof的安装使用与注意事项

    前言 xhprof由facebook开源出来的一个PHP性能监控工具,占用资源很少,甚至能够在生产环境中进行部署. 它可以结合graphviz使用,能够以图片的形式很直观的展示代码执行耗时. 下面主要 ...

  3. 关于 MongoDB 与 SQL Server 通过本身自带工具实现数据快速迁移 及 注意事项 的探究

    背景介绍 随着业务的发展.需求的变化,促使我们追求使用不同类型的数据库,充分发挥其各自特性.如果决定采用新类型的数据库,就需要将既有的数据迁移到新的数据库中.在这类需求中,将SQL Server中的数 ...

  4. HttpClientUntils工具类的使用测试及注意事项(包括我改进的工具类和Controller端的注意事项【附 Json 工具类】)

    HttpClient工具类(我改过): package com.taotao.httpclient; import java.io.IOException; import java.net.URI; ...

  5. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes 本篇分享一下第5个已完工的视频,即<beginner Graphics – ...

  6. ArcGIS空间分析工具

    1. 3D分析 1.1. 3D Features toolset 工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 Z 信息 添 ...

  7. 转:关于垂直网格与CSS基线对其的探讨

    网页设计布局中一直比较流行网格对齐,但只是针对水平的对齐,很少或者没有涉及垂直对齐,这篇文章很详细的讲解了垂直网格,乃至基线对其的相关,而css3中的多列布局的也使其显得更为重要,因此还是很有必要去了 ...

  8. css3前端工具

    随着CSS3的出现,CSS3讨论的话题越来越多了,现在各种教程也是多如牛毛,不比一年前的时候,找个资料要捞遍整个互联网,而且还很难找到自己需要的参考资料.从侧面也说明,CSS3对于前端工程师来说,越来 ...

  9. css3工具

    随着CSS3的出现,CSS3讨论的话题越来越多了,现在各种教程也是多如牛毛,不比一年前的时候,找个资料要捞遍整个互联网,而且还很难找到自己需要的参考资料.从侧面也说明,CSS3对于前端工程师来说,越来 ...

随机推荐

  1. vue实现简单评分效果

  2. HDU1671 水题字典树

    #include<cstdio> #include<cstdlib> #include<iostream> #include<cstring> #inc ...

  3. BZOJ1220 HNOI2002 跳蚤 【容斥原理+高精度】*

    BZOJ1220 HNOI2002 跳蚤 Description Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持 ...

  4. 高度注意 Map 类集合 K/V 能不能存储 null 值的情况

    集合类 Key Value Super 说明 Hashtable 不允许为 null 不允许为 null Dictionary 线程安全 ConcurrentHashMap 不允许为 null 不允许 ...

  5. SQL夯实基础(九)MySQL联接查询算法

    书接上文<SQL夯实基础(八):联接运算符算法归类>. 这里先解释下EXPLAIN 结果中,第一行出现的表就是驱动表(Important!). 对驱动表可以直接排序,对非驱动表(的字段排序 ...

  6. nginx 获取请求头,URL参数

    获取url参数 在 ngx_lua 中访问 Nginx 内置变量 ngx.var.arg_PARAMETER 即可获得GET参数PARAMETER的内容. 在 nginx配置中,通过$arg_PARA ...

  7. ballerina 学习十 streams

    ballerina 的streams 使用的是siddhi complex event processing 引擎处理,可以包含的语法有 projection filtering windows jo ...

  8. openresty websocket 使用

      openresty websocket 使用 1. 代码如下: local server =require"resty.websocket.server" local wb, ...

  9. SVN增加文件后,文件无法自动包括在项目中的原因

    当增加文件后,不仅要提交所增加的文件,而且要把项目文件一并提交.不然就会出现其他人虽然能够获取新文件,但是文件不能自动加载到项目中的情况.

  10. Python 函数 -globals()

    globals() globals() 函数会以字典类型返回当前位置的全部全局变量. 实例: >>>a='runoob' >>> print(globals()) ...