MATLAB-等高线函数contour以及提取轮廓数据
[c,h] = contour(___); % 返回等高线矩阵c和等高线对象h
c为等高线矩阵,返回为二行多列矩阵。每组中的第1列第1行顶部是等高线层级,第1列第2行是该
等高点的数据个数。组中的后续列是 (x, y) 坐标。第1行为 x 坐标,第2行为 y 坐标。
h为等高线对象,可以设置其属性,例如,线宽,颜色。
clabel(c,h,'fontsize',14);
此函数为等高线上显示其对应的数值。
[c,h] = contourf(___); % 返回等高线矩阵c和等高线对象h
contourf与contour的唯一区别就是contourf的等高线图形使填充的。
如何从矩阵c中分离处数据?
函数如下:调用即可
function s=contourdata(c)
if nargin<1 || ~isfloat(c) || size(c,1)~=2 || size(c,2)<4error('CONTOURDATA:rhs',...'Input Must be the 2-by-N Contour Matrix C.')
endtol=1e-12;
k=1; %记录有几条等高线
col=1; %第几列while col<size(c,2); % while less than total columns in cs(k).level = c(1,col); s(k).number = c(2,col); idx=col+1:col+c(2,col);%例如2:16s(k).x = c(1,idx); s(k).y= c(2,idx); s(k).isopen = abs( diff( c(1,idx([1 end])) ) ) >tol || ... %或abs( diff( c(2,idx([1 end])) ) ) >tol ; %diff差分函数 计算首位数值是否相同k=k+1;%等高线条数+1col=col+c(2,col)+1;
end
s(k)为结构体,包含以下:
s(k).level :第 k 行的等高线层级;s(k).number: 第 k 条线的坐标个数;
s(k).x: 第 k 行的 x 轴数据。 s(k).y:第 k 行的 y 轴数据。
s(k).isopen :如果第 k 个轮廓是开放的,则为1,如果是封闭的,则为0。
疑惑1:
当一条等高线的数据较多时,contour函数会将一条等高线分段处理,而且不是按顺序排列的。例如:分成2段,但是第2段拼接在第1段前面才是一个按顺序排列的完整的数据轮廓。我仿真时碰到过分成2、3、5段的,虽然可以根据规律将它们拼接在一起,但是觉得不具备普遍性。
疑惑2:
也可能出现分段中的其中一段的数据不是按顺序排列的,如x坐标:3,2,1,0,-1,-2,-3。此时需要将坐标数据反向处理。
疑惑3:
不知道这个函数提出的数据精度怎么样,因为我是用来提出隐函数的等高线的坐标数据的,所以需要知道其精度。网上没有关于这个讨论。不知道有没有大佬了解这个问题。
如果有人遇到了和我一样的问题,请留言进行讨论吧!
MATLAB-等高线函数contour以及提取轮廓数据相关推荐
- matlab contour3函数,matlab 等值线函数 contour
contour是等高线绘制函数 我并没怎么用过这个函数,只是参照help将上面的英文翻译一下,如果有错误,请大家提出来. contour(Z)根据矩阵Z画出等高线,Z是以x,y为平面的高度.Z必须是一 ...
- matlab 不同函数间传递结构体数据_matlab 结构体struct函数使用方法
1.struct函数直接定义 查阅文档是这样的:struct(field1,value1,field2,value2,.....) 上面这个格式很重要记住 field1和field2称为这个结构体的字 ...
- MATLAB plot函数,画线标记数据点(实线、虚线、改变颜色)
数据点画圈: 实线: plot(time1,'o-'); 结果: 虚线: plot(time1,'--o'); 结果: 画线换颜色 plot(time1,'o--r'); 结果:
- matlab 等高线数值显示_「matlab等高线」matlab中contour 函数的用法(绘制等高线) - seo实验室...
matlab等高线 原文 contour 矩阵的等高线图 全页折叠 语法 contour(Z) contour(Z,n) contour(Z,v) contour(X,Y,Z) contour(X,Y ...
- pythonopencv提取轮廓区域_Python + Opencv 实现轮廓提取,轮廓区域面积计算
Python + Opencv2 实现轮廓提取,轮廓区域面积计算: 对图像处理时,会遇到这样一个场景:找到图像主体轮廓,这是其一,可能为了凸显轮廓,需要用指定的颜色进行标记:轮廓标记完可能任务还没有结 ...
- 《Matlab图像处理》part1 Snakes:Active Contour Models 主动轮廓模型
<Matlab图像处理>part1 Snakes:Active Contour Models 主动轮廓模型 参考博客: 数字图像处理-图像分割:Snake主动轮廓模型 Matlab代码及运 ...
- matlab计算海洋浮力频率_水深数据+海岸线数据提取绘图(海洋科学)
最近用matlab画的水深等值线图,在此分享一下~ 水深的数据很少(我找的时候),可能现在有两个:一个是海图(没用过),一个是ETOPO1的数据(ETOPO2和ETOPO5不推荐使用).下面介绍ETO ...
- 利用matlab对rosbag数据,通过matlab提取rosbag数据
通过matlab提取rosbag数据 代码如下: 最近在做AGV导航实验,导航小车是基于ROS实现的,判断小车导航是否运行稳定,可以直接通过rviz直观看出来.但是如何通过数据定性地分析数据,这就需要 ...
- 【OpenCV函数】轮廓提取;轮廓绘制;轮廓面积;外接矩形
FindContours 在二值图像中寻找轮廓 int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_cont ...
最新文章
- 朴素、Select、Poll和Epoll网络编程模型实现和分析——朴素模型
- javascript中常用的
- powerdesigner显示工具面板_10分钟看懂Photoshop 绘画(画笔面板1-3)
- html日历显示不完整,求html代码,显示日历和时间的代码
- [LeetCode] Missing Ranges 缺失区间
- 高中电子技术——电弧抑制电路
- VS2010对Excel操作---DLL向
- Python时间数据类型
- 放大器电路的大信号带宽,压摆率是瓶颈
- title和alt属性有什么作用?
- 计算机语言abs,Abs函数
- 心力哲学——艰难多变环境下快乐、自由与生存力的源泉(二)
- PDMan-2.1.0 正式发布:用心开源,免费的国产数据库建模工具
- Python 三维姿态估计+Unity3d 实现 3D 虚拟现实交互游戏
- Element UI中的图标
- 缺少空格:The JSP specification requires that an attribute name is preceded by whitespace
- SRAM、PSRAM、SPI FLASH初步认识
- java菜鸟1:jdk 安装
- 四六开seo快排系统源码关键词排名系统源码V4.0版本介绍
- 小学计算机合作教学设计,小学信息技术教学设计