豪斯多夫距离的是一个数学结构来衡量两套是一个度量空间的子集点的“接近性”。
这种措施可以用来分配两个轨迹,数据云或点中的任意集合之间的标量分数的相似性。
该函数将返回两组点之间的豪斯多夫距离。
对于豪斯多夫距离的详细信息:http://en.wikipedia.org/wiki/Hausdorff_distance
扎卡里丹齐格(2020年)。豪斯多夫距离(//www.tianjin-qmedu.com/matlabcentral/fileexchange/26738-hausdorff-distance),MATLAB中央文件交换。检索。
1.6.0.0 | 数据可视化的选项现在包括在内。 |
|
1.4.0.0 | 根据用户的意见,该算法对大数据集的性能进行了更新。 |
|
1.3.0.0 | 当没有足够的内存来计算和存储包含所有组成点之间的距离的矩阵的代码,现在自动切换到辅助算法。它也允许用户手动选择所需的算法。 |
|
1.2.0.0 | 概括的代码,以允许N维点集。此更新通过文件27905,具有良好的执行超过2 d点集高清的启发。 |
|
1.1.0.0 | 编辑添加的距离作为输出选项的矩阵。修正了会导致一个错误,如果其中一组是单点的错误。除去多余的呼吁“大小”和“长度”。- 2010年5月 |
罗希特冉纳德(查看资料)
哈桑R-Esfahlan(查看资料)
史蒂芬去(查看资料)
希林SHK(查看资料)
MoseLee(查看资料)
林新余(查看资料)
姆乔(查看资料)
ggyyree(查看资料)
嗨扎卡里,
短短的几个简单的问题:
1.将与3D数据点你实现好不好?例如,我已得到两组三维数据点由顶点(X,Y,Z)和(X 'Y',Z')表示。这会不会实现能处理呢?
2.我发现了另一个在执行
http://uk.mathworks.com/matlabcentral/fileexchange/29968-modified-hausdorff-distance
然而,这一次给出的结果是从您的实现不同。拜托你对此有何评论?
非常感谢您的梦幻般的工作。
儿子阮(查看资料)
嗨扎卡里。
我的意思是,可以使用一个点的坐标是集。例如,点(1,2,3)将变成集合{1,2,3} - 由坐标的集合。
因此,使用这种想法,我想查看哪些组是d的距离的点P远离=(A,B,C),我的输入。[我只是想在空间中的点。]
扎卡里丹齐格(查看资料)
@Son:两点之间的Hausdorff距离将是一样的“普通”欧氏距离。当你比较两个集合点的豪斯多夫距离变得非常有用。
儿子阮(查看资料)
你好。
我是新来的MATLAB。有人可以帮助我如何使用这个程序?
基本上我想要做的就是我希望把在空间中的点,说(0,0,0),并指定最大距离,说5,我想找到的所有空间中的点,其Hausdorff距离的起源是5。
感谢您的时间。
礼萨Ahmadzadeh(查看资料)
所有的警告可以通过输出参数之间用逗号将可避免。[A B] - > [A,B]。
扎卡里丹齐格(查看资料)
@Duc菲尔感谢您的输入,这可能是非常有用的。我还没有制定与并行MATLAB计算非常多。
德费尔(查看资料)
很不错的一段代码。我想知道,如果这个改变是可能的:L91-L110,利用并行计算的。我认识到,有时长度SP(1)或□(1)的载体可能仍然过大过保存,但有大小SP(1)*□(1)和载体的那些个体的基体之间有很大的区别长度。
MINP =零(1,SP(1));
PARFOR P = 1:SP(1)
%计算从点P中至Q的最小距离
MINP(P)=分钟(总和(bsxfun(@减去,P(P,:),Q)^ 2,2))。
结束
MAXP = MAX(MINP);
%重复的Q中的点
minQ =零(1,□(1));
PARFOR Q = 1:□(1)
minQ(Q)=分钟(总和(bsxfun(@减去,Q(Q,:),P)^ 2,2))。
结束
MAXQ = MAX(minQ);
旺(查看资料)
我想计算两个指标图像之间的豪斯多夫距离!
Siwar的chniti(查看资料)
请我需要一个代码来计算两个二进制图像之间的豪斯多夫距离!
扎卡里丹齐格(查看资料)
@Yunus,你的问题是有点暧昧。按照规定,代码将解释你的输入集具有每一个2维的点,在这种情况下,我们预计非零HD,因为点是不同的,而事实上,是由它们的欧几里得距离精确地不同。如果你有兴趣在比较组有两个1维穴每次需要调换你的投入。行被视为观察和列的尺寸。
HD = HausdorffDist([1 2],[2 1]) - > 1.41
HD = HausdorffDist([1 2] '[2 1]') - > 0
尤努斯埃姆雷(查看资料)
确实是非常有用的代码。我有个问题 :
假设我们有两套,即{1,2}和{2,1}。这两组之间的豪斯多夫距离为零。然而,在代码中,我们得到了点之间的欧氏距离的值。我错了吗?
扎卡里丹齐格(查看资料)
@Shaan,一种方法是对待这些图像的像素的向量,并使用这些向量代码,但是,HD图像的比较多更细致的实施方案已经制定出来。
陕(查看资料)
你如何使用此代码来计算两个二进制图像之间的豪斯多夫距离是多少?
帕夏Mahmoudzadeh(查看资料)
这是伟大的代码,但是你需要修复你的错误:为了达到相同的列的两个图像,你可以修复下列代码列数:
NROWS = MAX(大小(I1,1),大小(I2,1));
NCOLS = MAX(大小(I1,2),大小(I2,2));
nchannels =尺寸(I1,3);
extendedI1 = [I1,零(大小(I1,1),NCOLS尺寸(I1,2),nchannels);...
零(NROWS尺寸(I1,1),NCOLS,nchannels)];
extendedI2 = [I2,零(大小(I2,1),NCOLS尺寸(I2,2),nchannels);...
零(NROWS尺寸(I2,1),NCOLS,nchannels)];
I1 = extendedI1;
I2 = extendedI2;
此外,二值图像不给我们的豪斯多夫距离的最低数字。我检查你的代码与几个二进制图像和所有时代的最大豪斯多夫距离的数字是正确的答案,而不是最小数量。
Venkat [R(查看资料)
非常快速和有用的提交。
很适合我。谢谢
Pramit素洁(查看资料)
嗨,
我有由被人-X和Y像参观顺序位置的两个向量:
X = [(LAT1,long1),(LAT2,long2),(lat3,long3)];
Y = [(lat4,long4),(LAT2,long2),(lat3,long3)];
我需要找到这两个向量之间的相似度。可这Hausdorff距离帮我以任何方式?
内伊奇ILC(查看资料)
扎卡里丹齐格(查看资料)
罗埃尔H,
同意这两个方面。该代码已被更新和重新发布。做一些快速测试,你推荐显著提高速度非常大的矩阵的更新,谢谢。
罗埃尔^ h(查看资料)
漂亮的代码,感谢写这个功能!
虽然我有几句话。对于largeMat情况下,最好是使用bsxfun代替repmat,因为它是更有效的(更快),用于大矩阵这显然是这种情况。也可能是一个想法,直到最大发现推迟“开方”的呼叫。这不会改变结果,但要求较少的计算
%现有的代码:
MINP =分钟(SQRT(总和((repmat(P(P,:),[□(1)1]) - Q)^ 2,2)));
%sugestion:
MINP =分钟(总和((bsxfun(@减去,P(P,:),Q))^ 2,2))。
扎卡里丹齐格(查看资料)
它是由特拉维夫大学的Roey Baror提醒我注意,创建/所有点之间的距离输出的矩阵可以迅速占用系统内存对于大型矩阵,如高清晰度的图像。更新提供二次算法计算Hausdorff距离,而不存储在存储器中的大矩阵,并且当该二次算法是必要的自动检测。
s_ppu(查看资料)
龙眼(查看资料)
Sasikanth(查看资料)
漂亮的代码,并很好的注释来!