• 点、线、边缘检测

背景知识。书中主要介绍了图像的一阶导数与二阶导数,这个之前的文章中有过介绍这里在复习一遍。对于函数

,对于点
在x方向的一阶偏导为:
,二阶偏导为:

之后书中总结了一阶导与二阶导对于图像求取边缘的结论:

孤立点检测。图像中孤立点检测使用二阶梯度。公式如下:

(扩展:用于边缘检测的sobel算子属于一阶梯度。)

拓展一下拉普拉斯,包含像素

四个对角,那么可以使用如下模板。

线检测

线检测同样使用拉普拉斯变换,不过不同的方向使用不同的二阶偏导。如下图是不同方向直线检测模板。

例如水平方向的检测模板,使用y方向的二阶偏导。

  • 基本边缘检测

选择梯度作为在图像

处边缘的强度和方向。梯度表示如下:
,沿梯度方向灰度变化率最大。

梯度大小:

梯度方向:沿

轴的夹角:
,梯度表示如下图。

任意点

处边缘的方向与该点处梯度向量的方向正交。

梯度向量有时被称为边缘法线。当向量通过除以其幅值而归一化为单位向量,结果称为边缘单位法线。

  • 梯度算子

如下图几种常用梯度算子:

Prewitt算子与Sobel算子的区别在于Sobel算子的中心元素是前者的2倍,这提供了平滑的作用,中心元素2倍于两边的元素,这可以看作高斯分布的简化版,如果模板再大些,可以使用高斯分布初始化各个模板中各个系数。Prewitt与Sobel具有各项同性的特点。两种算子对角的模板如下图。

  • 更先进的边缘检测技术

Marr-Hildreth边缘检测器。

  1. 使用高斯拉普拉斯滤波处理图像;
  2. 找到零交叉点。

高斯拉普拉斯函数本质上是求高斯函数的二阶梯度,具体公式如下图:

拉普拉斯模板可以将模板的

坐标带入到公式中,调整模板的系数都是整数,保证系数和为0.

零交叉点:一阶导数的局部最大值对应二阶导数的零交叉点(zero crossing),于是通过找出图像强度的二阶导数的零交叉点就能找到精确的边缘点。Laplacian算子是常用的二阶导数算子。

  • canny算子

步骤:

  1. 平滑;
  2. 梯度幅值与方向检测;
  3. 非极大值抑制减少假边缘;
  4. 双阈值减少小边缘。

主要介绍3,4步骤。第3步将每一个待处理的边缘像素方向分为8份,一共有水平、垂直、-45、+45四个方向。如下图。

在图a中,假设现在有一水平边缘,那么该边缘的法线方向一定穿过p2,p8(梯度方向),所以比较p5与p2、p8的幅值大小,如果p5均大于两者,那么保留,否则抑制为0.

步骤4设置两个阈值,大阈值、小阈值,梯度幅值大于大阈值的保留、小于小阈值的置零,中间的幅值如果与大阈值相邻,那么保留。

  • 边缘连接与边界检测

前面已经讲过可以使用一阶梯度算子得到边缘的梯度强度以及方向,由于其他因素的干扰,边缘点是不连续的。那么设计算法将相似边缘点进行连接,以点

为中心的八邻域内的点
,确定边缘相似有两个性质:

梯度强度差小于阈值

梯度方向差小于阈值

步骤2中

表示角度
左右
范围。

步骤4的意思是旋转图像,再执行步骤3的扫描,将扫描结果旋转回来。

书中举了车牌识别的例子,如下图。

分别连接水平竖直的边缘并合并,根据车牌的长宽比定位车牌位置(可以计算连通区域)。

  • 使用多边形近似连接边缘
  • 使用霍夫变换找直线

对于二维平面的直线

,可以写成参数形式:
,那么对于一条直线来说,在参数空间对应于一点,对于一点来说,参数空间对应于一条直线。具体如下图:

那么对于图a中直线对应于b图中的点

,那么图a中直线上的点对应于b图中经过点
的直线。但是在实际使用过程中,对于逼近垂直方向的直线来说,其斜率无限大,计算不方便产生较大误差,所以使用直线法线表示方法。

其中

是直线与x轴的夹角,
是原点到直线的距离,那么在参数
空间中,直线上每一点都是一条正弦曲线,这些曲线交于的一点就是该直线。如下图。

图c是

平面的累加单元,其中两个参数的范围为:
,
.
是对角线之间的距离。使用方法是对于
平面上前景点求其在
平面上的曲线,并在
平面的累加单元上画出并累加,统计累加点数多的
坐标,该坐标是判断出的直线。

霍夫变换法还可拓展到曲线的检测。

  • 阈值处理

影响图像二值化分割的因素:噪声、光照不均匀、物体表面反射光线不均匀。

存在噪声可以使用一些平滑算法、又由于噪声多数为频率较高的分量,可以使用低通滤波处理。光照不均匀可以使用同态滤波,同态滤波假设不均匀光照是低频分量,那么转换到频率域,抑制低频,增强高频;可以使用局部阈值进行处理;可以使用顶帽变换处理,先使用与前景物体大小类似结构元去掉物体留下背景,使用剩余的背景均匀原背景,最后阈值分割。

  • Otus

图像灰度被分类两类,该算法选择分类边界阈值

,使用的方法是计算最大类间方差,对于[0,255]的灰度也就是说
取多少,类间方差最大。那么将问题转化为如何求解类间方差:

其中

是两类像素的概率,
是两类像素的平均灰度值,
是全局灰度值。
  • 使用边缘检测改善阈值处理效果

书中介绍了一种方法,该方法用于对抗噪声的干扰,主要意思是对有噪声污染的待处理图像进行边缘检测,对检测后的图像进行二值化,使用二值化后的图像作为掩膜,对掩膜中的图像进行阈值化例如Otus。下面两个例子如下图。

  • 多阈值处理

类似OTUS算法,只不过OTUS是计算一个阈值,分成两类,多阈值可以计算多个阈值。

  • 可变阈值处理

这一小结所讲算法也是针对于非均匀光照这类问题而提出的,再次总结以下前面对于非均匀光照使用的方法,可以使用同态滤波或顶帽变换进行处理。

分块阈值

将图像分成小份,每个小份进行单独阈值处理,该方法基于每个小块的灰度是均匀的。

使用局部灰度标准差、局部灰度均值来确定局部阈值,公式如下:

其中

表示标准差,
表示均值。
是常数权值。

移动平均阈值

能够稳定有效处理光照不均匀的文本图像,和一些受正弦波污染的图像。

  • 多变量阈值处理

对于灰度图像,每一个像素是单通道数值,那么灰度图像是单变量的图像,对于RGB彩色图像,每一个像素是3通道数值,那么彩色图像是多变量的图像。灰度图像阈值分割是通过灰度值距离进行分割,所以引申到彩色图像,是通过彩色像素值距离进行分割,彩色像素是多通道,那么可以使用多变量距离进行区分。例如:微红色像素值向量为

,那么对于待分割图像的每一个像素
,它们之间的距离可以使用欧式距离来表示:

如果考虑像素之间的关系,可以使用马氏距离:

其中

的协方差矩阵,当
时,马氏距离转换为欧式距离,表示各个通道之间无关。
  • 区域生长

区域生长的方法的原理与种子填充算法类似,首先需要种子点,根据相似度(灰度、纹理等)将不同区域进行合并进而分割。

  • 分裂合并

按照某一规则对一副图像进行细分,直到每一细分区域都满足该规则为止,在对细分后 的区域进行合并。

上面两个算法原理比较好理解,区域生长实质上是分裂合并的合并步骤。

  • 分水岭分割
  • 运动过程中的分割

空间域分析

使用运动视频中每一帧之间的像素差值来作为运动变化的证据进行分析。两幅图像之间的差值图像定义如下:

累计运动图像。

python 图像的拉普拉斯变换中的数值问题_数字图像处理(第十章)相关推荐

  1. 图像的灰度级数越多越好_数字图像处理:Reducing Gray Levels, Zooming and Shrinking

    摘 要:本实验通过编写三个MATLAB的程序来实现图像的放大与缩小和减小图像的灰度级数.三个程序包括:编写一个以2的幂次方将给定图像的灰度级数从256减少到2的程序,并用该程序实现由图 2.21(a) ...

  2. python使用正则表达式抽取字符串中最大数值数字

    python使用正则表达式抽取字符串中最大数值数字 #python使用正则表达式抽取字符串中最大数值数字 # Function to extract maximum numeric value fro ...

  3. python使用正则表达式统计字符串中出现次数最多的数字

    python使用正则表达式统计字符串中出现次数最多的数字 #python使用正则表达式统计字符串中出现次数最多的数字 # find the most occurring element import ...

  4. python 图像分析自然纹理方向与粗细代码_数字图像处理与Python实现笔记之基础知识...

    数字图像处理与Python实现笔记之基础知识 摘要 绪论 1 数字图像处理基础知识 1.1 数字图像简介 1.1.1 数字图像处理的目的 1.1.2 数字图像处理的应用 1.1.3 数字图像处理的特点 ...

  5. 用拉普拉斯变换求零状态响应_高斯拉普拉斯算子(Laplacian of Gaussian, LoG)

    一.简要描述: 拉普拉斯算子是图像二阶空间导数的二维各向同性测度.拉普拉斯算子可以突出图像中强度发生快速变化的区域,因此常用在边缘检测任务当中.在进行Laplacian操作之前通常需要先用高斯平滑滤波 ...

  6. 数字图像处理与python实现_数字图像处理学习(2)—— 图像直方图均衡与图像匹配(python实现)...

    数字图像处理学习(2)-- 直方图均衡与图像匹配 1. 直方图均衡(Histogram Equalization) 1.1 直方图均衡化概念 1.2 直方图均衡实现简单思路 1.3 直方图均衡实现代码 ...

  7. 用拉普拉斯变换求零状态响应_拉普拉斯算子的FPGA实现方法

    拉普拉斯算子是一种重要的图像增强算子,它是一种各向同性滤波器,即滤波器的响应与滤波器作用图像的突变方向无关,而且实现简单,被广泛用于图像锐化和高频增强等算法中. 电子学习资料大礼包​mp.weixin ...

  8. 关于python字符编码以下选项中错误的是_关于Python文件打开模式的描述,以下选项中错误的是...

    [单选题]下列Python保留字中,不用于表示分支结构的是 [单选题]下列哪项不是python中文件的读取操作 [单选题]以下程序的输出结果是: s='' ls = [1,2,3,4] for l i ...

  9. 关于python字符编码以下选项中错误的是_关于 Python 字符编码,以下选项中描述错误的是...

    [单选题]下面代码的输出结果是: a = 20 b = a | 3 a &= 7 print(b ,end=",") print(a) [单选题]Python 3.x 版本 ...

最新文章

  1. java继承 映射_hibernate继承关系映射和java反射机制的运用
  2. python列表不包含哪个内置函数_python 列表的推导器和内置函数
  3. 支付宝二面:Mybatis 接口 Mapper 内的方法为啥不能重载吗?我直接懵逼了。。。
  4. 看完这篇Redis缓存三大问题,保你能和面试官互扯。
  5. Asp.net 安装包制作 (转)
  6. 【转】图的点连通度边连通度总结
  7. python怎么获取lol皮肤名称_LOL手游免费皮肤获得方法 LOL手游皮肤怎么获得
  8. 对交换机VLAN及各种端口类型的理解
  9. 面试pythone_python面试常见问题有哪些
  10. Arthur J.Riel的61条面向对象设计的经验原则[ZT]
  11. Android Studio 3.2升级后的编译问题解决办法
  12. azure云数据库_在Azure SQL数据库中实现动态数据屏蔽
  13. Oracle数据库使用Navicat premium创建用户时遇到的坑
  14. 死链接处理,seo站长必会
  15. mysql单表历史记录_Mysql之单表记录查询
  16. 使用echarts生成漂亮的3D地图
  17. 基于动态窗口法(DWA)的局部避障算法研究及MATALB的实现
  18. win7怎么装python_如何在win7上面安装python的包
  19. 物联网通信_闲聊协议
  20. Javascript点击显示或隐藏下拉框

热门文章

  1. 小白学Java Web 3 Web前端之CSS基本知识2
  2. android基本控件学习-----ProgressBar
  3. 初探Openstack Neutron DVR
  4. aspxgridview的取值
  5. 重读模式与架构(2)——层次划分的依据和角色职责
  6. 带有数据库的动态级联菜单
  7. C# PPT转图片的解决方案
  8. 【实践】文本相关性和知识蒸馏在知识蒸馏中的应用实践
  9. NLP简报(Issue#6)
  10. 桶排序JAVA软件测试_111-堆排序的速度测试和小结