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. object references an unsaved transient instance - save the transient instance before flushing: com.jspxcms.core.domain.ScTeam

    object references an unsaved transient instance - save the transient instance before flushing: com.j ...

  2. Associations marked as mappedBy must not define database mappings like @JoinTable or @JoinColumn【报错】

    自己的项目没有测通  可能是自己项目原因——因为自己项目中级联关系的类涉及太多 自己的项目[这样的配置报错] @OneToMany(fetch=FetchType.LAZY,cascade = { C ...

  3. 每天一个linux命令:【转载】cp命令

    cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数.但是如果是 ...

  4. shell编程--遍历目录下的文件

    假定目录text下有如下文件      目录:dir_1.dir_2.dir_3 文件:text_1.text_2 遍历目录下所有的文件是目录还是文件 if -- if类型: #!bin/sh for ...

  5. SSZipArchive使用详解

    下载SSZipArchive,点击我.或者自己在这里下载. SSZipArchive功能: 解压zip文件 解压密码保护的zip文件 创建zip文件 追加到zip文件 压缩文件 使用一个名字来压缩NS ...

  6. Open Asset Import Library(assimp) vs2010编译

    Assimp(Open Asset Import Library)是一个开源的3D模型导入解析库, 可以处理很多种3D文件格式:Collada, Blend, Obj, X, 3DS, LWO, MD ...

  7. 《selenium2 python 自动化测试实战》(6)——打印信息和设置等待时间

    打印信息经常用的有两个: # coding: utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get( ...

  8. CycloneII之EDA及学术开发功能描述

    1.概述 同Stratix/Cyclone. 2.逻辑单元(Logic Cell)描述 在以前的架构中(比如Cyclone),单个LE包括一个组合逻辑和寄存器.对于Cyclone II来说,组合逻辑和 ...

  9. 记录一些WPF常用样式方便以后复用(转)

    TextBox文本框 <Style x:Key="TextBoxStyle1" BasedOn="{x:Null}" TargetType="{ ...

  10. filter添加水印

    1filter写法 先定义自己的responseWrapper chain.doFilter(request,responseWrapper); responseWrapper来输出 package ...