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. import 路径

    例子: import sys sys.path.append("/home/wang/Downloads/caffe-master/python") import caffe

  2. using中StreamWriter XmlWriter 区别

    使用StreamWriter using (var writer = new StreamWriter(File.Create(path))) { writer.WriteLine("sdf ...

  3. .NET 中 GetProcess 相关方法的性能

    .NET 的 Process 类中提供了查找进程的若干方法,其中部分方法还比较消耗性能.如果你试图优化查找进程相关方法的性能,可能本文分享的一些耗时数据可以作为参考.   性能比较 Process 类 ...

  4. hdfs会出现的一些问题

    实训的第一篇博客献给坑了我的hdfs…… 由于电脑的原因,突然花屏,虚拟机来不及挂起.之后发现50070端口进不去,查看jps进程发现没有namenode 先用stop-all.sh命令再start还 ...

  5. 【angularJS】Route路由

    介绍 AngularJS 路由允许我们通过不同的 URL 访问不同的内容. 通过 AngularJS 可以实现多视图的单页Web应用(single page web application,SPA). ...

  6. bat命令1

    echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo命令将显示当前回显设置. 语法 echo [{on|off}] [message] Sample:@echo off ...

  7. CentOS下编译安装LNMP环境

    一.卸载系统预安装的LAMP软件 rpm -qa|grep httpd rpm -e httpd httpd-tools rpm -qa|grep mysql rpm -e mysql mysql-l ...

  8. struts 2整合spring要注意的问题(二)

    在 struts2_spring_plugin.xml配置文件里有一个strus.objectFactory.spring.autoWire 属性 默认值为name   也就是说你不想装载.它都会找个 ...

  9. ORACLE联机日志文件丢失或损坏的处理方法(转)

    经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA ...

  10. laravel的auth用户认证的例子

    参考http://www.cnblogs.com/yjf512/p/4042356.html 需要注意的是,生成的测试数据,password部分必须用laravel自带的hash一下 Hash::ma ...