博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DoG 、Laplacian、图像金字塔详解
阅读量:6191 次
发布时间:2019-06-21

本文共 1430 字,大约阅读时间需要 4 分钟。

DoG(Difference of Gaussian)

DoG (Difference of Gaussian)是灰度图像增强和角点检测的方法,其做法较简单,证明较复杂,具体讲解如下:

Difference of Gaussian(DOG)是高斯函数的差分。我们已经知道可以通过将图像与高斯函数进行卷积得到一幅图像的低通滤波结果,即去噪过程,这里的Gaussian和高斯低通滤波器的高斯一样,是一个函数,即为正态分布函数。

那么difference of Gaussian 即高斯函数差分是两幅高斯图像的差,

一维表示:

二维表示:

 

具体到图像处理来讲,就是将两幅图像在不同参数下的高斯滤波结果相减,得到DoG图。

[cpp] 
 
 
 
  1. GaussianBlur(img,img_G0,Size(3,3),0);  
  2. GaussianBlur(img_G0,img_G1,Size(3,3),0);  
  3. Mat img_DoG = img_G0 - img_G1;  
  4. normalize(img_DoG,img_DoG,255,0,CV_MINMAX);  

 

 

Laplacian图像

计算图像的拉普拉斯是通过Sobel操作计算图像在x和y方向的二阶偏导数的和:

\texttt{dst} =  \Delta \texttt{src} =  \frac{\partial^2 \texttt{src}}{\partial x^2} +  \frac{\partial^2 \texttt{src}}{\partial y^2}

voidLaplacian(InputArray src, OutputArray dst, int ddepth, int ksize=1, double scale=1, double delta=0, int borderType=BORDER_DEFAULT)

 

ksize>1使用上述偏导公式计算. 当ksize==1 , 拉普拉斯图像通过如下3 \times 3 aperture计算:

\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}

 

[cpp] 
 
 
 
  1. Laplacian(img,img_Lp,8,1);  

 

ksize=1,不太明显,选择ksize>1时,比较显著。

 

 

图像金子塔

拉普拉斯金字塔与高斯金字塔是一个图像集合,集合中的所有图像都源于一幅图像,是通过连续下采样获得。

高斯金字塔是向下采样图像,而拉普拉斯金字塔是向上重建图像。

 

高斯金字塔

Down:降采样(OpenCV里描述成Down,注意也可以说是向上层操作)

从第i层G(i)生成第i+1层G(i+1):首先使用高斯核进行卷积,然后删除所有偶数行和偶数列,这样获得图像大小仅为上一层的1/4,然后不断迭代。

[cpp] 
 
 
 
  1. pyrDown(img,img_Down,Size());  

 

Up:(注意不是简单的降采样的逆操作)

从第i+1层G(i+1)生成第i层G(i):首先每一维都扩大两倍,新的行(偶数行)以0填充,然后使用指定的录波器进行卷积(实际上是在每一维都扩大两倍的滤波器:此滤波器的所有元素都被规范化为4,而不是1。因为在之前所有插入行的像素值都为0,所以这样做是合理的)去估计“丢失”的近似值,这样获得图像大小为上一层的4倍。

[cpp] 
 
 
 
  1. pyrUp(img_Down,img_Up,Size());  

 

 

Laplacian金字塔

高斯金字塔丢失的数据形成了拉普拉斯金子塔,数学公式如下:

L(i)=G(i) - UP(G(i+1))*G(5x5)

OpenCV可以使用:

L(i)=G(i) - PyrUp(G(i+1))

 

[cpp] 
 
 
 
  1. Mat lp_UpDown = img-img_Up;  

 

 

from: http://blog.csdn.net/yangtrees/article/details/8309594

你可能感兴趣的文章
C#“多线程线程间操作无效: 从不是创建控件的线程访问它。”,跨线程修改控件属性解决方案...
查看>>
jsp中excel文件的创建与读取
查看>>
Oracle backgroup processes
查看>>
《C++ primer》--第12章
查看>>
KSFramework常见问题:Excel如何进行SVN协作、差异比较?
查看>>
Xen Credit调度算法
查看>>
在.NET中通过Outlook发送Email
查看>>
Wordpress中JQUERY链接平移效果
查看>>
Java文件操作与输入输出流
查看>>
Unity3D中暂停时的动画及粒子效果实现
查看>>
c语言数据类型
查看>>
数据库闭包和候选码求解方法
查看>>
一个分页排序SQL查询结果集不确定的案例
查看>>
数学分析高等代数考研试题荟萃[更新至2017年10月1日]
查看>>
Redis-benchmark测试Redis性能
查看>>
纪念一下博客园积分进入前1000名
查看>>
计算器
查看>>
JDK目录和Java三大平台
查看>>
视频服务降价34%,基础设施降价25%,阿里云北京云栖大会再次释放技术红利
查看>>
第 15 章 Apache Struts
查看>>