OpenCV:曲线的检测与提取-0,绪:在图像处理实际应用中,常常需要对图像中的曲线进行描述和处理;曲线可以是轮廓、骨架等;本文将介绍如何在二值图像中检测曲线并提取。
怎样用OpenCV求一条曲线的曲率 假设曲线为 y=f(x),曲率圆圆心(a,b),半径为r;曲率圆的本质就是要求曲线与圆在这点的切线与凹陷度一样。首先得出曲率圆方程为:(x-a)^2+(y-b)^2=r^2;假设曲线在该点处凹,则b>;y,得出 y=b-(r^2-(x-a)^2)^(1/2);y'=(-1/2)[(r^2-(x-a)^2)^(-1/2)]*(-2)(x-a)=(x-a)(r^2-(x-a)^2)^(-1/2);A式y''=(r^2-(x-a)^2)^(-1/2)+(x-a)*(-1/2)(r^2-(x-a)^2)^(-3/2)*(-2)(x-a)(r^2-(x-a)^2)^(-1/2)+(x-a)^2(r^2-(x-a)^2)^(-3/2)B式按理由A、B两式就可以消掉(x-a),得出一个半径r 的表达式由 y'与y''表示;但是直接代入消元比较麻烦,可以如下这般代换:由A知道(r^2-(x-a)^2)^(-1/2)=y'/(x-a)代入 B式有:y''=y’/(x-a)+(x-a)^2(y'/(x-a))^3=y'/(x-a)+y'^3/(x-a)=(y'+y'^3)/(x-a)(x-a)=(y'+y'^3)/y'' 此式再回过头代入A式中有:y'=((y'+y'^3)/y'')(r^2-((y'+y'^3)/y'')^2)^(-1/2)r^2=((1+y'^2)/y'')^2+((y'+y'^3)y'')^2=((1+y'^2)^3)/(y''^2)=>;r=(1+y'^2)^(3/2)/y''曲率就是1/r;有了半径r、法线斜率(-1/y'),就很容易的求出曲率圆的圆心了,继而求出曲率圆的方程。曲线的曲率(curvature)就是针对曲线上某个点的切线方向角对弧长的转动率,通过微分来定义,表明曲线。
怎样用opencv求一条曲线的曲率 myisam_recover=64K#允许的GROUP_CONCAT()函数结果的最大长度transaction_isolation=REPEATABLE-READinnodb_file_per_table