matlab中如何实现将经过边缘检测后得到的图像边缘曲线逼成直线

问题描述:

matlab中如何实现将经过边缘检测后得到的图像边缘曲线逼成直线
1个回答 分类:综合 2014-09-17

问题解答:

我来补答
可以考虑把它变成一个规划问题.
我的想法是把你得到的曲线化为一个离散函数,然后采用matlab里面的求解线性回归函数用一条直线去拟合它,得到的直线即为你所需的逼近直线.
再问: 你说的好像是数学方面的问题吧,我提的问题是图像处理方面的问题呢。因为我是初学者,好多地方也不是特别明白呢,不知道是否可以把我所得到的图像轮廓转化为数学方面的问题来处理呢,如果可以的话,那问题应该就很容易解决了呢。 谢谢你的关注哈!
再答: 我做过图像处理的,这个我知道的,你哪里不明白。
再问: 得到的图像边缘不是一条完整的曲线,也可以把它化为离散函数呢。还有就是如何将图像的边缘化为离散函数呢,谢谢指导哈!
再答: 实际上你得到的图像边缘应该是以矩阵的形式存储的吧,那就是说你的图像矩阵包含了你的图像边缘信息。假设在A矩阵里面值为255的为你的边缘点,值为0的为背景。 假设A的大小为200*100(宽200,高100) 那么 x=zeros(1,200) y=zeros(1,100) for k=1:200 for l=1:100 if A(x,y)==255 y(k)=l; break; end end end 再把x和y中零值去除就可以得到了y关于x的函数,其中对于每一个x对应的y表示A(x,y)为你的边缘点。 然后用“\”命令做一个线性方程拟合,“\”的命令用法如下: “\”命令 1.假设要拟合的多项式是:y=a+b*x+c*x^2.首先建立设计矩阵X: X=[ones(size(x)) x x^2]; 执行: para=X\y para中包含了三个参数:para(1)=a;para(2)=b;para(3)=c; 这种方法对于系数是线性的模型也适应。 就可以得到你需要的边缘直线方程了
再问: 那用这种方法做的话,只能得到直线段的参数方程,我还需要的是要得到这些直线段的端点呢。请问可以加我QQ(597161696)么,具体的我们在线聊。谢谢你的帮助哈!
再问: 用这种方法的话,可以得到直线段的参数方程,我还需要的是要得到这些直线段的端点呢。请问可以加我QQ(597161696)么,我们在线聊可能会方便点。最后谢谢你的帮助哈!
再问: 用这种方法可以得到我所需要的直线段的参数,但我还需要得到直线段的端点呢。请问你能加我QQ(597161696)么,我们在线交流可能会方便些。最后谢谢你的帮助哈!
 
 
展开全文阅读
剩余:2000