格式:B = bwboundaries(BW,conn)(基本格式)
作用:获取二值图中对象的轮廓。B是一个P×1的cell数组,P为对象个数,每个cell是Q×2的矩阵,对应盯宴于对象轮廓像素的坐标。Q内枝手每一行表示连通体的边界像素的位置凯搭银坐标(第一列是纵坐标Y,第二列是横坐标X),Q为边界像素的个数。
如何使用matlab提取图像伦廓的坐标先把图像二值化,再提取图像轮廓
用for循环语句扫描图像的数组
找到初始点,用八码跟踪法继续寻找,
每找到一个边缘点,就放到新建的与图像同大小的数组I中,
直到找到初始点结束寻找
在寻找边缘时设置num计算边缘点的长度
设定一个雹游num的大小,若比这个长度短就将I中的坐让嫌标删源滑销除再从新扫描直到找到你要的曲线轮廓
matlab中能否给图像加坐标系
只是有时将坐标系隐藏了
subplot就是添加子坐标系
axis on就是显示坐标系
axes就是创建一个坐标系,根据自己的设置
用matlab解两条直线夹角的问题
y=ax+b斜率tanq=a
y=cx+d斜率tanp=c
其中,q,p分别为两直线与x轴夹角,
则两直线夹角为q-p
所以,两直线夹角为q-p=arctan{(a-c)/(1-ac)}
给你提供个思路吧。首先我假设你提取出的圆轮廓还算比较歼数规整,圆度不至于偏差太大。
你只需要求出最大内切圆和最小外接圆即可。算法比较容易设计,简单来看可以分为三部分:
1)确定圆心。首先,你先填充原来的轮廓图,获得一个实心的圆。然后,统计这个圆的质心。
程序写起来很容易,就是x放心和y放心各自按照坐标加权平均而已。
2)求最大内切圆。在上一步获得的圆心基础上,计算出最大的半径值,使得以此半径构成的圆被最大地包含差改轮在原始的轮廓圆内部。这种包含虚信关系直接使用俩图做差看剩余像素点是否在内切圆内即可。
3)最小外接圆。基本思路同2)。只不过这里要找一个最小的半径值,使得以此半径构成的圆最小地包含原始的轮廓圆。包含关系与2)类似,不再啰嗦。
2)、3)完成之后,问题就解决了。用matlab写成代码应该比较容易,你自己应该能做。
当然,以上的算法求出的圆心可能需要微调一下,即你在进行2)和3)时,需要在算出的圆心附近做一下简单的搜索,以获得一个最优的未知,这个是小trick,注意下即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)