我一直认为图论+概率统计将会是图像处理的最终趋势,但我目前水平有限,稍微深入一点就很难理解,看各种论文也无法全面理解,偶然翻到这本书,觉得讲的非常好,特此进行分析,希望能尽快啃掉这本书。

我看书就按照书上给的顺序阅读吧,第一章主要讲的各种基本图像处理方法,像是个小前言,没啥值得看的,直接进入第二章——数学准备第一节:平面微分几何。

1 平面曲线的微分性质

从一维实数域到二维实数域的映射:C(p):[a,b]∈R→R2C(p):[a,b]\in R \rightarrow R^2C(p):[a,b]RR2定义了一条平面曲线,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=appp点所经过的距离——弧长:s(p)=∫ap∣Cp(τ)∣dτs(p)=\int_{a}^{p}|C_p(\tau)|d\taus(p)=apCp(τ)dτ,两边求导有dsdp=∣Cp∣\dfrac{ds}{dp}=|C_p|dpds=Cp。当我们利用弧长sss作为曲线的参数时,则有∣Cs∣=1|C_s|=1Cs=1,此处的CsC_sCs并不是直接把CpC_pCp中的ppp换成sssCs=(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|=1Cs=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}CssCsC_sCs正交。

定义与TTT构成右手坐标系的单位矢量为法矢量NNN,显然CssC_ssCssNNN共线,因此可以表达为Css=κNC_{ss}=\kappa NCss=κN,其中比例系数κ\kappaκ为曲率,这是一个数。当CssC_ssCssNNN平行时,κ\kappaκ为整数,否则为反平行时,κ\kappaκ为负数。(注:由于NNN的方向是由TTT按右手坐标系确定的,而TTT的方向是参数增大的方向,它决定与曲线起点的规定。可见对于一条开放的曲线而言,曲率取正号或负号取决于曲线起点的规定,但对于闭合曲线而言,起点和终点在同一位置,不过这时仍可规定曲线的绕行方向,按照惯例规定逆时针绕行方向,于是N将指向闭合曲线内部,因而当曲线向外凸出时,曲率为正,否则为负。)

结合之前得到的CsC_sCs,计算CssC_{ss}CssdCsdp=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/2xpyppxppyp(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/2xpyppxppyp(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/2xpyppxppyp

书中证明弧长和曲率,针对于旋转和平移,都是不改变的,这里就不进行证明了。记住弧长和曲率是旋转平移不变量即可。

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=xucosθ+yusinθ=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:=(xu,yu)与水平集的切向量垂直,而且梯度矢量总是指向uuu增大的方向,因此水平集的单位法矢量可以表达为:N=±▽u∣▽u∣N=\pm\dfrac{\bigtriangledown u}{|\bigtriangledown u|}N=±uu,如果u(x,y)u(x,y)u(x,y)在零水平集内部取正值,外部负值时,规定N=▽u∣▽u∣N=\dfrac{\bigtriangledown u}{|\bigtriangledown u|}N=uu,反之,N=−▽u∣▽u∣N=-\dfrac{\bigtriangledown u}{|\bigtriangledown u|}N=uu。这样就使N总是指向封闭曲线的内部,从而与上面所述的闭合曲线法方向N的规定相一致。

在之后讨论曲线演化的水平集方法时,总是约定嵌入函数u(x,y)u(x,y)u(x,y)的零水平集,并且规定在零水平集内部为负数,外部为正数,因此N=−▽u∣▽u∣N=-\dfrac{\bigtriangledown u}{|\bigtriangledown u|}N=uu,结合之前工作,即可计算水平集的曲率:

κ=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/2uxxuy22uxuyuxy+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}L2πA

,仅当封闭曲线是圆时,上式等号成立。

总结

当前文档是为了学习水平集相关方法而学的一些基础定义与理论,后续会不断地根据需要的知识对当前基础知识进行扩展和补充。

啃书:图像处理的偏微分方程方法(1) —— 数学准备:平面微分几何相关推荐

  1. python - 啃书 第七章 模块、包和库 (二)

    常用第三方库 Pandas Pandas 中文网 Pandas是基于NumPy库的一种解决数据分析任务的工具库 Pandas库纳入了大量模块和一些标准的数据模型,提供了高效的操作大型数据集所需的工具 ...

  2. 4000字超干货!《统计学习方法》啃书指南(1)

    事半功倍的啃书姿势内容分以下六个部分: 一.我的学习历程(不喜欢听啰嗦的可以从第二部分开始) 二.学习<统计学习方法>遇到的困难 三. 在学习过程中碰过的壁 四.最后解决问题的方法 五.学 ...

  3. 4000字超干货!《统计学习方法》啃书指南

    事半功倍的啃书姿势内容分以下六个部分: 一.我的学习历程(不喜欢听啰嗦的可以从第二部分开始) 二.学习<统计学习方法>遇到的困难 三. 在学习过程中碰过的壁 四.最后解决问题的方法 五.学 ...

  4. python - 啃书 第五章 函数

    函数定义和调用 函数定义 函数是:组织好的,可重复使用的,用来实现单一或相关联功能的代码段. 在程序中,函数的使用能提高应用的模块性.代码的重用率和可读性. 自定义函数的一般格式为: def 函数名( ...

  5. 飞鸽传书谈哈希表之数学原理

    这里的文章是飞鸽传书谈哈希表之数学原理转载的,作者:niniwzw 15:08 2010-5-6 .NET程序员,大多数时候是不需要数学的.因为,有了.NET, 数据结构和算法的重要性被弱化了,操作系 ...

  6. 研0必读!李航《统计学习方法》啃书指南

    李航<统计学习方法>是机器学习必读的经典书籍.无论是人工智能专业的导师们给学生所列的必读书单,还是网上各种人工智能推荐书单,其中一定少不了一本李航的<统计学习方法>. 然而,这 ...

  7. 数字图像处理的研究方法

    数字图像处理是近年来电子.通讯和计算机等领域的热门研究领域,其在科研.经济.军事.娱乐等等国计民生的各个领域都具有非常广阔的应用前景.数字图像处理处是一门交叉学科,涉及数学.计算机.电子.通讯.物理等 ...

  8. 基于机器视觉的图像处理缺陷检测方法论文学习

    基于机器视觉的图像处理缺陷检测方法论文学习 Machine Vision based Defect Detection Approach using Image Processing Abstract ...

  9. 一起来啃书——PHP看书

    形式所迫,不得不开展android的学习,PHP这边也开始了啃书的日子.两部500+的书,45天够不,有点忙有点忙... 早上的胃胀,简直是一记闷棍,长点儿记性吧........ 1.PHP+MYSQ ...

  10. Openmv(一)OpenMV图像处理的基本方法

    一.图像处理基础知识 摄像头:光学信号转换成电信号.计算机视觉中,最简单的模型是小孔成像模型. 小孔成像是一种理想模型,实际镜头会存在场曲和畸变等,但可以通过在标定过程中引入畸变参数解决,仍可广泛使用 ...

最新文章

  1. 业内公认的AI发展最大挑战,有哪些技术突破机会?
  2. 渐进式Web应用(PWA)入门教程(上)
  3. adb logcat通过包名过滤(dos命令find后跟变量)
  4. 实验7-3-3 统计大写辅音字母 (15分)
  5. spark计算操作整理
  6. java多线程的api_java多线程之:线程对象一些api
  7. 「leetcode」763.划分字母区间【贪心算法】详细图解
  8. codeblocks设置代码黑色主题
  9. 密码学 SM3算法 Python实现
  10. 安装mysql过程中出现无法找到入口,无法定位程序输入点fesetround于动态链接库
  11. 某汽车零部件制造厂商
  12. [Usaco2010 Dec]Treasure Chest 藏宝箱
  13. 不知道如何选用笔记本电脑的快来看看
  14. 【PostgreSQL】函数之百分位数中位数:percentile_cont()
  15. 在web页面预览PDF文件
  16. 计算机网络基础知识总结及思维导图(四)网络层
  17. graphpad两组t检验_SPSS如何比较样本两组样本的组内和组间差异(含GraphPad Prism绘图)...
  18. 分布式存储基础之kad
  19. js获取当前日期农历
  20. 2020清北学堂秋季营感想——Hoarfrost

热门文章

  1. 网易评论盖楼的数据结构
  2. ADX趋势线突破交易系统
  3. dedecms网站后台密码修改方法
  4. 关于 Window 的 UWP 应用本地回环限制以及限制解除方案
  5. 解除开启全局 UWP应用网络隔离限制
  6. 自动发片q机器人_寻片机器人(微信群自动回复工具)V2.6.853 正式版
  7. 企业邮箱客户端POP协议收信后,Webmail的邮件被删除,如何调整?
  8. 华东师范 2018年 研究生复试上机题解合集
  9. 【云计算的1024种玩法】搭建 wiki 知识库
  10. Android直连MySQL数据库