Python函数图像交点 python画数学函数图像( 三 )


下面是一个数学小白对原理的学习经验 。
教材说:众所周知,一条直线在图像二维空间可由两个变量表示 。
抱歉,小白还真不知道……即使学习过,这些年也早已经还给老师了 。
一开始难道要学习笛卡尔坐标系,不 , 你低估小白的能力了 , Python函数图像交点我第一个查询的是θ读作西塔 ,是一个希腊字母 。
什么是笛卡尔坐标系Python函数图像交点?
这个比较简单,直角坐标系 。
斜率和截距
斜率 , 亦称“角系数”,表示一条直线相对于横坐标轴的倾斜程度 。
一条直线与某平面直角坐标系横坐标轴正半轴方向的夹角的正切值即该直线相对于该坐标系的斜率 。
如果直线与 x 轴互相垂直 , 直角的正切直无穷大,故此直线不存在斜率 。
对于一次函数y=kx+b ,k就是该函数图像的斜率 。
在学习的时候 , 也学到如下内容:
截距:对x的截距就是y=0时,x的值,对y的截距就是x=0时 ,  y的值,
截距就是直线与坐标轴的交点的横(纵)坐标 。x截距为a , y截距b,截距式就是: x/a+y/b=1(a≠0且b≠0)。
斜率:对于任意函数上任意一点 , 其斜率等于其切线与 x 轴正方向所成的角,即k=tanα。ax+by+c=0中,k=-a/b。
什么是极坐标系?
关于极坐标系 , 打开百度百科学习一下即可 。
重点学到下面这个结论就行:
找资料的时候,发现一个解释的比较清楚的博客 ,后续可以继续学习使用 。
继续阅读资料 , 看到如下所示的图,这个图也出现在了很多解释原理的博客里面,但是图下面写了一句话
在这里直接蒙掉了,怎么就表示成极坐标系了?上面这个公式依旧是笛卡尔坐标系表示直线的方式呀,只是把k和b的值给替换掉了 。
为何是这样的,具体原因可以参照下图 。
centerchou 图/center
继续寻找关于霍夫变换的资料,找到一个新的概念 霍夫空间。
在笛卡尔坐标系中,一条直线可以用公式表示 , 其中k和b是参数,表示的是斜率和截距 。
接下来将方程改写为 , 这时就建立了一个基于k - b的笛卡尔坐标系 。
此时这个新的方程在k - b坐标系也有一个新的直线 。
你可以在纸上画出这两个方程对应的线和点,如下图所示即可 。
centerchou 图/center
新的k - b坐标系就叫做霍夫空间,这时得到一个结论,图像空间x - y中的点对应了 霍夫空间 k - b中的一条直线,即图像空间的点与霍夫空间的直线发生了对应关系 。
如果在图像空间x - y中在增加一个点 , 那相应的该点在霍夫空间也会产生相同的点与线的对应关系,并且 A 点与 B 点产生的直线会在霍夫空间相交于一个点 。而这个点的坐标值就是直线 AB 的参数 。
如果到这里你掌握了,这个性质就为我们解决直线检测提供了方法,只需要把图像空间的直线对应到霍夫空间的点,然后统计交点就可以达到目的,例如图像空间中有 3 条直线,那对应到霍夫空间就会有 3 个峰值点 。
遍历图像空间中的所有点,将点转换到霍夫空间,形成大量直线 , 然后统计出直线交会的点,每个点的坐标都是图像空间直线方程参数,这时就能得到图像空间的直线了 。
上述的内容没有问题 , 但是存在一种情况是,当直线趋近于垂直时,斜率k会趋近于无穷大,这时就没有办法转换了,解决办法是使用法线来表示直线 。
上文提及的斜截式如下:
通过第二个公式,可以得到下述公式:

推荐阅读