博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
average diffusion distance
阅读量:4041 次
发布时间:2019-05-24

本文共 1678 字,大约阅读时间需要 5 分钟。

average diffusion distance(ADD) 

定义见: [1]

说明见: [2]

主要代码:

% test for farthest point sampling on 3D meshes%%%%%%%%%%%%%%   sphere   %%%%%%%%%%%%%%%%% name = 'sphere40.obj';% X0=read_obj(name); % vertex=X0.xyz';  %坐标% faces=X0.tri'; %三角形顺序索引%%%%%%%%%%%%%%   elephant   %%%%%%%%%%%%%%%%[vertex,faces] = read_mesh('elephant-50kv');vertex = vertex';faces = faces';%dis=squareform(pdist(vertex));%euclidian distance numvert = size(vertex, 1);colorvector = (1:numvert)'/ numvert;%figure(1);%scatter3(vertex(:,1),vertex(:,2),vertex(:,3),10,colorvector,'filled'); L = cotmatrix(vertex,faces);M = massmatrix(vertex,faces,'voronoi');M = diag(M);M = M * ones(1,size(L,2));L = L./M;% the discrete Laplacian matrixeigennum = 51;[U,S] = eigs(L, eigennum, 'sr');%[U,S,V] = svds(L,size(L,1));eigenvals=diag(S);t = 1 / (2 * eigenvals(2)); % select timeeigenvals = eigenvals(eigenvals<-log(0.1)/t);% choose eigen numbereigennum = min(eigennum - 1, size(eigenvals,1) - 1);e_minus_lambda_t = exp(-eigenvals(2:eigennum+1).*t);   e_minus_lambda_t = ones(size(U,1),1)*e_minus_lambda_t';X = U(:,2:eigennum+1).*e_minus_lambda_t;%figure(2);%scatter3(X(:,1),X(:,2),X(:,3),10,colorvector,'filled'); dis=squareform(pdist(X).^2);%diffusion distance D = sum(dis, 2);col = D;col = perform_histogram_equalization(col, linspace(0,1,length(col)));options.face_vertex_color = col;clf;hold on;plot_mesh(vertex, faces, options);colormap jet(256);camlight;shading interp;
最终结果:

正如[1]说的那样,the ADD presents highvalues for boundary and extrema points, and small valuesfor points in the center of the segment.

[1]A Hierarchical Segmentation of Articulated Bodies

[2]Symmetry-Aware Nonrigid Matching of Incomplete 3D Surfaces

你可能感兴趣的文章
CImg库编译使用.
查看>>
openstack虚拟机创建流程
查看>>
openstack网络总结
查看>>
excel 查找一个表的数据在另一个表中是否存在
查看>>
centos 7 上配置dnsmasq 同时支持ipv4和ipv6的DHCP服务
查看>>
AsyncTask、View.post(Runnable)、ViewTreeObserver三种方式总结frame animation自动启动
查看>>
Android中AsyncTask的简单用法
查看>>
Linux usb 设备驱动 (1)
查看>>
解决跨网场景下,CAS重定向无法登录的问题(无需修改现有代码)
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>
概念区别
查看>>
关于静态块、静态属性、构造块、构造方法的执行顺序
查看>>
final 的作用
查看>>
在Idea中使用Eclipse编译器
查看>>
idea讲web项目部署到tomcat,热部署
查看>>
IDEA Properties中文unicode转码问题
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>