啃书:图像处理的偏微分方程方法(1) —— 数学准备:平面微分几何
我一直认为图论+概率统计将会是图像处理的最终趋势,但我目前水平有限,稍微深入一点就很难理解,看各种论文也无法全面理解,偶然翻到这本书,觉得讲的非常好,特此进行分析,希望能尽快啃掉这本书。
我看书就按照书上给的顺序阅读吧,第一章主要讲的各种基本图像处理方法,像是个小前言,没啥值得看的,直接进入第二章——数学准备第一节:平面微分几何。
1 平面曲线的微分性质
从一维实数域到二维实数域的映射:C(p):[a,b]∈R→R2C(p):[a,b]\in R \rightarrow R^2C(p):[a,b]∈R→R2定义了一条平面曲线,ppp为曲线的参数,即对任一p∈[a,b]p\in[a,b]p∈[a,b]确定了曲线上的一个点C(p)=(x(p),y(p))C(p)=(x(p),y(p))C(p)=(x(p),y(p))。
这个其实也就是图像中二维曲线的定义,C(p)C(p)C(p)也就是个向量,因此这个曲线对ppp的导数也是个向量,Cp=(xp,yp)C_p=(x_p,y_p)Cp=(xp,yp),其方向为曲线的切线方向,模长就是∣Cp∣=(xp2+yp2)1/2|C_p|=(x_p^2+y_p^2)^{1/2}∣Cp∣=(xp2+yp2)1/2。导数在这里也可以理解为曲线上的位置随着ppp的增加的变化速率,因此CpC_pCp也就是速度矢量。
现在计算曲线从起点p0=ap_0=ap0=a到ppp点所经过的距离——弧长:s(p)=∫ap∣Cp(τ)∣dτs(p)=\int_{a}^{p}|C_p(\tau)|d\taus(p)=∫ap∣Cp(τ)∣dτ,两边求导有dsdp=∣Cp∣\dfrac{ds}{dp}=|C_p|dpds=∣Cp∣。当我们利用弧长sss作为曲线的参数时,则有∣Cs∣=1|C_s|=1∣Cs∣=1,此处的CsC_sCs并不是直接把CpC_pCp中的ppp换成sss,Cs=(xp,yp)dpds=(xp,yp)(xp2+yp2)1/2C_s=(x_p,y_p)\dfrac{dp}{ds}=\dfrac{(x_p,y_p)}{(x_p^2+y_p^2)^{1/2}}Cs=(xp,yp)dsdp=(xp2+yp2)1/2(xp,yp),这样∣Cs∣=1|C_s|=1∣Cs∣=1就很显然了,并T:=CsT:=C_sT:=Cs。进而有<Cs,Cs>=1<C_s,C_s>=1<Cs,Cs>=1,其导数<Cs,Css>=0<C_s,C_{ss}>=0<Cs,Css>=0,即向量CssC_{ss}Css与CsC_sCs正交。
定义与TTT构成右手坐标系的单位矢量为法矢量NNN,显然CssC_ssCss与NNN共线,因此可以表达为Css=κNC_{ss}=\kappa NCss=κN,其中比例系数κ\kappaκ为曲率,这是一个数。当CssC_ssCss与NNN平行时,κ\kappaκ为整数,否则为反平行时,κ\kappaκ为负数。(注:由于NNN的方向是由TTT按右手坐标系确定的,而TTT的方向是参数增大的方向,它决定与曲线起点的规定。可见对于一条开放的曲线而言,曲率取正号或负号取决于曲线起点的规定,但对于闭合曲线而言,起点和终点在同一位置,不过这时仍可规定曲线的绕行方向,按照惯例规定逆时针绕行方向,于是N将指向闭合曲线内部,因而当曲线向外凸出时,曲率为正,否则为负。)
结合之前得到的CsC_sCs,计算CssC_{ss}Css,dCsdp=xpypp−xppyp(xp2+yp2)3/2(−yp,xp)\dfrac{dC_s}{dp}=\dfrac{x_py_{pp}-x_{pp}y_p}{(x_p^2+y_p^2)^{3/2}}(-y_p, x_p)dpdCs=(xp2+yp2)3/2xpypp−xppyp(−yp,xp),即可得CssC_{ss}Css。
Css=dCsdpdpds=xpypp−xppyp(xp2+yp2)3/2⋅(−yp,xp)(xp2+yp2)1/2C_{ss}=\dfrac{dC_s}{dp}\dfrac{dp}{ds} = \dfrac{x_py_{pp}-x_{pp}y_p}{(x_p^2+y_p^2)^{3/2}}\cdot \dfrac{(-y_p, x_p)}{(x_p^2+y_p^2)^{1/2}}Css=dpdCsdsdp=(xp2+yp2)3/2xpypp−xppyp⋅(xp2+yp2)1/2(−yp,xp)
即可得曲率的表达形式:
κ=xpypp−xppyp(xp2+yp2)3/2\kappa = \dfrac{x_py_{pp}-x_{pp}y_p}{(x_p^2+y_p^2)^{3/2}}κ=(xp2+yp2)3/2xpypp−xppyp
书中证明弧长和曲率,针对于旋转和平移,都是不改变的,这里就不进行证明了。记住弧长和曲率是旋转平移不变量即可。
2 平面封闭曲线的水平集表示方法
对于平面封闭曲线,除了可以用上节的显示表示方法外,还有隐式表达法C={(x,y),u(x,y)=c}C=\{(x,y), u(x,y)=c\}C={(x,y),u(x,y)=c},也就是说曲线CCC是满足u(x,y)=cu(x,y)=cu(x,y)=c的点集,这称为函数u(x,y)u(x,y)u(x,y)的一个水平集,这时称u(x,y)u(x,y)u(x,y)是曲线CCC的嵌入函数 embedding function,c=0c=0c=0时,称为零水平集。
如果在水平集的某一点ppp沿水平集的切线方向对u(x,y)u(x,y)u(x,y)求方向导数,则由于u(x,y)u(x,y)u(x,y)沿水平集保持不变,则有dudT=∂u∂xcosθ+∂u∂ysinθ=0\dfrac{du}{dT}=\dfrac{\partial u}{\partial x}cos\theta+\dfrac{\partial u}{\partial y}sin\theta=0dTdu=∂x∂ucosθ+∂y∂usinθ=0,其中θ\thetaθ表示切向量与x轴的夹角。可见,u(x,y)u(x,y)u(x,y)的梯度矢量▽u:=(∂u∂x,∂u∂y)\bigtriangledown u:=\left(\dfrac{\partial u}{\partial x}, \dfrac{\partial u}{\partial y}\right)▽u:=(∂x∂u,∂y∂u)与水平集的切向量垂直,而且梯度矢量总是指向uuu增大的方向,因此水平集的单位法矢量可以表达为:N=±▽u∣▽u∣N=\pm\dfrac{\bigtriangledown u}{|\bigtriangledown u|}N=±∣▽u∣▽u,如果u(x,y)u(x,y)u(x,y)在零水平集内部取正值,外部负值时,规定N=▽u∣▽u∣N=\dfrac{\bigtriangledown u}{|\bigtriangledown u|}N=∣▽u∣▽u,反之,N=−▽u∣▽u∣N=-\dfrac{\bigtriangledown u}{|\bigtriangledown u|}N=−∣▽u∣▽u。这样就使N总是指向封闭曲线的内部,从而与上面所述的闭合曲线法方向N的规定相一致。
在之后讨论曲线演化的水平集方法时,总是约定嵌入函数u(x,y)u(x,y)u(x,y)的零水平集,并且规定在零水平集内部为负数,外部为正数,因此N=−▽u∣▽u∣N=-\dfrac{\bigtriangledown u}{|\bigtriangledown u|}N=−∣▽u∣▽u,结合之前工作,即可计算水平集的曲率:
κ=uxxuy2−2uxuyuxy+uyyux2(ux2+uy2)3/2\kappa=\dfrac{u_{xx}u_y^2-2u_xu_yu_{xy}+u_{yy}u_x^2}{(u_x^2+u_y^2)^{3/2}}κ=(ux2+uy2)3/2uxxuy2−2uxuyuxy+uyyux2
3 平面曲线的全局性质
对于封闭曲线而言,具有如下全局性质:
(1) 圆是具有常数曲率的唯一封闭曲线
(2) 每一封闭曲线至少有4个顶点。所谓顶点是指在这些点曲率的一阶导数为0,显然按照这个定义,圆上每一点都是顶点。
(3) 封闭曲线的全部曲率为2π2\pi2π的整数倍,即∮κ(s)ds=2πk\oint\kappa(s)ds=2\pi k∮κ(s)ds=2πk。
(4) 周长不等式:记A和L分别为封闭曲线的面积和周长,那么有L⩾2πAL\geqslant 2\sqrt{\pi A}L⩾2πA
总结
当前文档是为了学习水平集相关方法而学的一些基础定义与理论,后续会不断地根据需要的知识对当前基础知识进行扩展和补充。
啃书:图像处理的偏微分方程方法(1) —— 数学准备:平面微分几何相关推荐
- python - 啃书 第七章 模块、包和库 (二)
常用第三方库 Pandas Pandas 中文网 Pandas是基于NumPy库的一种解决数据分析任务的工具库 Pandas库纳入了大量模块和一些标准的数据模型,提供了高效的操作大型数据集所需的工具 ...
- 4000字超干货!《统计学习方法》啃书指南(1)
事半功倍的啃书姿势内容分以下六个部分: 一.我的学习历程(不喜欢听啰嗦的可以从第二部分开始) 二.学习<统计学习方法>遇到的困难 三. 在学习过程中碰过的壁 四.最后解决问题的方法 五.学 ...
- 4000字超干货!《统计学习方法》啃书指南
事半功倍的啃书姿势内容分以下六个部分: 一.我的学习历程(不喜欢听啰嗦的可以从第二部分开始) 二.学习<统计学习方法>遇到的困难 三. 在学习过程中碰过的壁 四.最后解决问题的方法 五.学 ...
- python - 啃书 第五章 函数
函数定义和调用 函数定义 函数是:组织好的,可重复使用的,用来实现单一或相关联功能的代码段. 在程序中,函数的使用能提高应用的模块性.代码的重用率和可读性. 自定义函数的一般格式为: def 函数名( ...
- 飞鸽传书谈哈希表之数学原理
这里的文章是飞鸽传书谈哈希表之数学原理转载的,作者:niniwzw 15:08 2010-5-6 .NET程序员,大多数时候是不需要数学的.因为,有了.NET, 数据结构和算法的重要性被弱化了,操作系 ...
- 研0必读!李航《统计学习方法》啃书指南
李航<统计学习方法>是机器学习必读的经典书籍.无论是人工智能专业的导师们给学生所列的必读书单,还是网上各种人工智能推荐书单,其中一定少不了一本李航的<统计学习方法>. 然而,这 ...
- 数字图像处理的研究方法
数字图像处理是近年来电子.通讯和计算机等领域的热门研究领域,其在科研.经济.军事.娱乐等等国计民生的各个领域都具有非常广阔的应用前景.数字图像处理处是一门交叉学科,涉及数学.计算机.电子.通讯.物理等 ...
- 基于机器视觉的图像处理缺陷检测方法论文学习
基于机器视觉的图像处理缺陷检测方法论文学习 Machine Vision based Defect Detection Approach using Image Processing Abstract ...
- 一起来啃书——PHP看书
形式所迫,不得不开展android的学习,PHP这边也开始了啃书的日子.两部500+的书,45天够不,有点忙有点忙... 早上的胃胀,简直是一记闷棍,长点儿记性吧........ 1.PHP+MYSQ ...
- Openmv(一)OpenMV图像处理的基本方法
一.图像处理基础知识 摄像头:光学信号转换成电信号.计算机视觉中,最简单的模型是小孔成像模型. 小孔成像是一种理想模型,实际镜头会存在场曲和畸变等,但可以通过在标定过程中引入畸变参数解决,仍可广泛使用 ...
最新文章
- 业内公认的AI发展最大挑战,有哪些技术突破机会?
- 渐进式Web应用(PWA)入门教程(上)
- adb logcat通过包名过滤(dos命令find后跟变量)
- 实验7-3-3 统计大写辅音字母 (15分)
- spark计算操作整理
- java多线程的api_java多线程之:线程对象一些api
- 「leetcode」763.划分字母区间【贪心算法】详细图解
- codeblocks设置代码黑色主题
- 密码学 SM3算法 Python实现
- 安装mysql过程中出现无法找到入口,无法定位程序输入点fesetround于动态链接库
- 某汽车零部件制造厂商
- [Usaco2010 Dec]Treasure Chest 藏宝箱
- 不知道如何选用笔记本电脑的快来看看
- 【PostgreSQL】函数之百分位数中位数:percentile_cont()
- 在web页面预览PDF文件
- 计算机网络基础知识总结及思维导图(四)网络层
- graphpad两组t检验_SPSS如何比较样本两组样本的组内和组间差异(含GraphPad Prism绘图)...
- 分布式存储基础之kad
- js获取当前日期农历
- 2020清北学堂秋季营感想——Hoarfrost