matlab中surf啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中surf啥意思相关的知识,希望对你有一定的参考价值。
三维曲面(色)图。
语法:
surf(X,Y,Z)
surf(X,Y,Z,C)
surf(Z)
surf(Z,C)
surf(ax,___)
surf(___,Name,Value)
s = surf(___)
扩展资料:
注意事项
surf用于绘制比较光滑的三维曲面网格图各线条之间的补面用颜色填充。
该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。函数还对颜色数据使用 Z,因此颜色与高度成比例。
surf(Z) 创建曲面,并将 Z 中元素的列索引和行索引分别用作 x 坐标和 y 坐标。此外,surf(Z,C) 还指定曲面的颜色。
surf(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区中。指定坐标区作为第一个输入参数。
surf(___,Name,Value) 使用一个或多个名称-值对组参数指定曲面属性。例如,'FaceAlpha',0.5 创建半透明曲面。请在所有其他输入参数之后指定名称-值对组。
s = surf(___) 将返回一个图曲面对象。
参考技术Asurf函数
三维曲面(色)图
surf 和 surfc 是通过矩形区域来观测数学函数的函数。surf和surfc能够产生由X、Y、Z指定的有色参数化曲面,即三维有色图。
当x = 1:n、y = 1:m,并且[m,n]=size(Z)时,surf(Z)会产生一个矩阵Z的z部分的三维遮罩层,这里Z是一个定义在几何矩形网格内的单值函数。
surf(X,Y,Z)同样产生矩阵Z的有色遮罩层,XY可以是有xy定义的向量或矩阵
surf(X,Y,Z,C)是产生一个由C定义颜色的矩阵Z的有色遮罩层
例子
k = 5;
n = 2^k-1;
[x,y,z] = sphere(n);
c = hadamard(2^k);
figure(1)
surf(z);
figure(2)
surf(x,y,z);
axis equal
figure(3)
surf(x,y,z,c);
colormap([1 1 0; 0 1 1])
axis equal
本回答被提问者和网友采纳 参考技术B 函数surf的作用:画三维曲面(色)图,起作用与mesh相似。
surf(X,Y,Z) X、Y、Z中Z通常是X,Y的函数,即Z(X,Y)。X、Y通常是通过调用meshgrid函数生成的数据网格。
surf(Z) surf(...,C) surf(...,'PropertyName',PropertyValue,...) surf(axes_handles,...)
相关函数:mesh,meshc, meshz
xgrid = -10:0.1:10;
ygrid = -10:0.1:10;
[x,y] = meshgrid(xgrid,ygrid);
z = 0.5.*(x-exp(0.0154.*y-2));
surf(x,y,z); 参考技术C 画三维的,彩色的 面
大小和响应在 SURF 关键点中究竟代表啥?
【中文标题】大小和响应在 SURF 关键点中究竟代表啥?【英文标题】:What does size and response exactly represent in a SURF keypoint?大小和响应在 SURF 关键点中究竟代表什么? 【发布时间】:2012-05-06 21:12:08 【问题描述】:我正在使用 OpenCV 2.3 进行关键点检测和匹配。但我对检测算法给出的size
和response
参数有点困惑。它们到底是什么意思?
根据OpenCV手册,我想不通:
float size
: 有意义的关键点邻域的直径
float response
: 最强关键点的响应 被选中。可用于进一步排序或二次抽样
我认为跟踪的最佳点是响应最高的点,但似乎并非如此。那么我如何对 surf 检测器返回的一组关键点进行二次采样,以仅保留最佳可追踪性?
【问题讨论】:
【参考方案1】:“size”是原始图像中描述符所覆盖区域的大小(它是通过在比例空间中对原始图像进行下采样获得的,因此它根据它们的比例从关键点到关键点而变化)。
“响应”确实是一个点“有多好”(粗略地说,就角点而言)的指标。
对于静态场景检索来说,好的点是稳定的(这是 SIFT/SURF 描述符的主要目的)。在跟踪的情况下,您可能会出现好点,因为被跟踪的对象位于良好的背景上,一半在阴影中......然后因为这种情况发生变化(光线变化,遮挡......)而消失。因此,不能保证跟踪任务总是有一个好点。
【讨论】:
【参考方案2】:大小和响应
SURF是一个blob检测器,简而言之,一个特征的大小就是blob的大小。更准确地说,OpenCV 返回的大小是近似 Hessian 算子长度的一半。大小也称为比例,这是由于斑点检测器的工作方式,即在功能上等于首先用高斯滤波器在几个尺度上模糊图像,然后对图像进行下采样,最后检测具有固定大小的斑点。请参阅下图,显示 SURF 特征的大小。每个特征的大小是绘制圆的半径。从特征中心到圆周的线表示角度或方向。在此图像中,斑点检测过滤器的响应强度是彩色编码的。您可以看到大多数检测到的特征响应较弱。 (查看原图here)
此直方图显示了上图中特征的响应强度分布:
要跟踪哪些特征?
最强大的特征跟踪器会跟踪所有检测到的特征。特征越多,鲁棒性越强。但是跟踪大量特征是不切实际的,因为我们经常希望限制计算时间。要经常跟踪的特征数量应该针对每个应用程序进行经验调整。通常将图像划分为规则的子区域,并且在每个子区域中保持跟踪 n 个最强的特征。通常选择 n,使得每帧总共检测到大约 500~1000 个特征。
参考文献
阅读journal paper describing SURF 肯定会让您对它的工作原理有一个很好的了解。尽量不要陷入细节中,特别是如果您的背景不是机器/计算机视觉或图像处理。 SURF 检测器乍一看似乎非常新颖,但整个想法是使用积分图像(早在 SURF 之前就已被其他方法使用)估计 Hessian 算子(一种成熟的滤波器)。如果你想很好地理解 SURF 并且你对图像处理不熟悉,你需要回去阅读一些介绍材料。最近偶遇a new and free book,他的第13章对特征检测做了很好的简要介绍。并非其中所说的所有内容在技术上都是正确的,但这是一个很好的起点。 Here 你可以找到另一个很好的 SURF 描述,其中有几张图片显示了每个步骤的工作原理。在该页面上,您会看到以下图片:
您可以看到白色和黑色的斑点,这些是 SURF 在多个尺度上检测并估计它们的大小(OpenCV 代码中的半径)的斑点。
【讨论】:
非常明确的答案。非常感谢。我想再问您一件事,因为您似乎对 SURF 了解很多。除了 opencv Manual guide 之外,还有其他关于 SURF 检测器和提取器的文档值得一看吗? 非常感谢。我实际上有计算机科学背景,但更多的是关于 SURF 的 openCV 实现的信息。对于感兴趣的人,我还发现了这个网站link,它很好地描述了 SURF 所基于的 SIFT。 我想再问一件事关于尺寸。如果我理解得很好,更大的尺寸意味着 SURF 检测到的 blob 的尺寸更大?但是,blob 的大小到底是什么意思?是用于检测关键点的区域大小吗? blob的大小,是使用的Hessian算子的大小。请参阅我提到的 SURF 论文或我添加的新参考。可能这会帮助你理解它。别忘了 OpenCV 是开源的,你可以去阅读代码来看看它是如何实现的。 你有涂鸦图片的参考资料吗?以上是关于matlab中surf啥意思的主要内容,如果未能解决你的问题,请参考以下文章