二值图像进行拉普拉斯锐化后产生的负数怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二值图像进行拉普拉斯锐化后产生的负数怎么办相关的知识,希望对你有一定的参考价值。

此图像即含有负值的滤波结果,相比于原图,丢失了一些灰度色调,故还需用原图减去此滤波结果(以还原失去的灰度色调)
http://blog.csdn.net/scottly1/article/details/44408343
参考技术A 二值图像进行拉普拉斯锐化后产生的负数怎么办
腐蚀/膨胀是针对二值图像的操作,在MATLAB里腐蚀是指将二值图像的白色边缘缩小一圈,膨胀则是将白色边缘扩大一圈,不过具体的效果跟自己定义的结构元素有关本回答被提问者采纳

拉普拉斯锐化(Laplacian sharpening)

前言

  在图像增强中,平滑是为了消除图像中噪声的干扰,或者降低对比度,与之相反,有时为了强调图像的边缘和细节,需要对图像进行锐化,提高对比度
图的边缘是指在局部不连续的特征。
原理
  拉普拉斯锐化图像是根据图像某个像素的周围像素到此像素的突变程度有关,也就是说它的依据是图像像素的变化程度。我们知道,一个函数的一阶微分描述了函数图像是朝哪里变化的,即增长或者降低;而二阶微分描述的则是图像变化的速度,急剧增长下降还是平缓的增长下降。那么据此我们可以猜测出依据二阶微分能够找到图像的色素的过渡程度,例如白色到黑色的过渡就是比较急剧的。
  或者用官方点的话说:当邻域中心像素灰度低于它所在的领域内其它像素的平均灰度时,此中心像素的灰度应被进一步降低,当邻域中心像素灰度高于它所在的邻域内其它像素的平均灰度时,此中心像素的灰度应被进一步提高,以此实现图像的锐化处理。
应用
  运用拉普拉斯可以增强图像的细节,找到图像的边缘。但是有时候会把噪音也给增强了,那么可以在锐化前对图像进行平滑处理。
  下面我们来推导二阶微分与像素的关系:
  先看一阶偏微分和推出的二元函数微分:

  $\\beginarrayl&\\frac\\partial f\\partial x=f(x, y)-f(x-1, y) \\\\&\\frac\\partial f\\partial y=f(x, y)-f(x, y-1) \\\\&\\nabla \\mathrmf=\\frac\\partial f\\partial x+\\frac\\partial f\\partial y=2 f(x, y)-f(x-1, y)-f(x, y-1)\\endarray$

  一阶微分法能够用来检测边缘是否存在。

  那么二阶微分法,也就是拉普拉斯算子就可以确定边缘的位置。(有的文章中称下式为拉普拉斯掩膜中心系数

    $\\nabla^2 \\mathrmf=4 f(x, y)-f(x-1, y)-f(x, y+1)-f(x+1, y)-f(x, y-1)$

  这样可以找到一个模板矩阵:

    $\\beginarrayccc0 & -1 & 0 \\\\-1 & 4 & -1 \\\\0 & -1 & 0\\endarray$

  这个成为四邻域也就是上面的二阶微分法

    $\\beginarrayccc-1 & -1 & -1 \\\\-1 & 8 & -1 \\\\-1 & -1 & -1\\endarray$

  这个是八邻域。

  【注】从上面的两种模板中就可以看出,如果一个黑色平面中有一个白点,那么模板矩阵可以使这个白点更亮。由于图像边缘就是灰度发生跳变的区域,所以拉普拉斯模板对边缘检测很有用。

  八邻域的表示法为:

    $\\beginarrayr\\nabla^2 \\mathrmf=8 f(x, y)-f(x-1, y-1)-f(x-1, y)-f(x-1, y+1)-f(x, y-1) \\\\-f(x, y+1)-f(x+1, y-1)+f(x+1, y)-f(x+1, y+1)\\endarray$

  将算得的值替换原  $(x,y)$  处的像素值,可以得到类似边界的地方,然后根据下式得到锐化图像:

    $\\mathrmg(\\mathrmx)=\\left\\\\beginarrayll\\mathrmf(\\mathrmx, \\mathrmy)-\\nabla^2 f(x, y), & \\nabla^2 f(x, y)<0 \\\\\\mathrmf(\\mathrmx, \\mathrmy)+\\nabla^2 f(x, y), & \\nabla^2 f(x, y) \\geq 0\\endarray\\right.$

 

因上求缘,果上努力~~~~ 作者:每天卷学习,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/15803431.html

以上是关于二值图像进行拉普拉斯锐化后产生的负数怎么办的主要内容,如果未能解决你的问题,请参考以下文章

数字图像C++8位和24位BMP位图的平滑锐化二值化处理,以及24位真彩图的灰度化

[opencv-python]学习-图像分割

MATLAB教程案例35指纹识别系统中图像处理环节相关理论学习和MATLAB仿真实现——图像二值化锐化细化特征提取伪特征去除等综合应用学习

指纹识别预处理

图片处理-opencv-2.图像平滑

对二值化图像的选定区域内的目标彩图的物体颜色进行识别(RGB)并输出,用opencv怎么编写源代码?