OpenCV入门(十)快速学会OpenCV 9 图像平滑处理

来自:    更新日期:早些时候
~ 在尽量保留图像原有信息的情况下,过滤掉图像内部的噪声,这一过程称为对图像的平滑处理,所得的图像称为平滑图像。例如,图7-1是含有噪声的图像,在图像内存在噪声信息,我们通常会通过图像平滑处理等方式去除这些噪声信息。

一幅图像在获取传输等过程中会受到各种各样的噪声干扰。图像噪声来自多方面,有来自系统外部的干扰,如电磁波或经电源串进系统内部而引起的外部噪声;也有来自系统内部的干扰,如摄像机的热噪声、电器的机械运动而产生的抖动噪声等。这些噪声干扰使图像退化,质量下降,表现为图像模糊、特征淹没、对图像分析不利。因此,去除噪声、恢复原始图像是图像处理中的一个重要内容。消除噪声的工作称为图像平滑。

图像平滑 (image smoothing) 是一种区域增强算法. 可以帮助我们去除早点改善图片质量。

滤波器 (Filter) 可以帮助我们来降低噪声, 均值滤波器的主要应用是去除图像中的不相关细节。

图像平滑是一种实用的数字图像处理技术。一个较好的平滑处理方法应该既能消除图像噪声,又不使图像边缘轮廓和线条变模糊,这是数字图像平滑处理要追求的目标。因为噪声源众多,噪声种类复杂,所以相应的平滑方法也多种多样。我们可以将图像平滑分为空间域图像平滑技术和频率域图像平滑技术。 空间域的图像平滑技术有邻域平均法、空间低通滤波、多图像平均、中值滤波等。 在频率域,由于噪声频谱通常在高频部分,因此可以采用各种形式的低通滤波器的方法减少噪声。

滤波的意思就是对原图像的每个像素周围一定范围内的像素进行运算,运算的范围就称为掩膜或领域。运算分为两种(如上图),如果运算只是对各像素灰度值进行简单处理(如乘一个权值)最后求和,就称为线性滤波; 如果对像素灰度值的运算比较复杂,而不是最后求和的简单运算,则是非线性滤波。例如,求一个像素周围3×3范围内的最大值、最小值、中值、均值等都不是简单的加权,都属于非线性滤波。

测试原图:

均值滤波是指用当前像素点周围N·N个像素值的均值来代替当前像素值。使用该方法遍历处理图像内的每一个像素点,即可完成整幅图像的均值滤波。

代码实例:

输出结果:

方框滤波与均值滤波的不同在于,方框滤波不会计算像素均值。在均值滤波中,滤波结果的像素值是任意一个点的邻域平均值,等于各邻域像素值之和除以邻域面积。而在方框滤波中,可以自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值,还是邻域像素值之和。

代码实例:

输出结果:

高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重的和。

高斯滤波器 (Gauss Filter) 是一种线性平滑滤波, 适用于高斯噪声。

中值滤波与前面介绍的滤波方式不同,不再采用加权求均值的方式计算滤波结果。它用邻域内所有像素值的中间值来替代当前像素点的像素值。

代码实例:

输出结果:

双边滤波在计算某一个像素点的新值时,不仅考虑距离信息(距离越远,权重越小),还考虑色彩信息(色彩差别越大,权重越小)。双边滤波综合考虑距离和色彩的权重结果,既能够有效地去除噪声,又能够较好地保护边缘信息。

代码实例:

输出结果:


OpenCV入门(十)快速学会OpenCV 9 图像平滑处理视频

相关评论:
  • 17234131880OpenCV入门(十)快速学会OpenCV 9 图像平滑处理
    贾思邱在尽量保留图像原有信息的情况下,过滤掉图像内部的噪声,这一过程称为对图像的平滑处理,所得的图像称为平滑图像。例如,图7-1是含有噪声的图像,在图像内存在噪声信息,我们通常会通过图像平滑处理等方式去除这些噪声信息。一幅图像在获取传输等过程中会受到各种各样的噪声干扰。图像噪声来自多方面,有...

  • 17234131880独家| 手把手教你使用OpenCV库(附实例、Python代码解析)
    贾思邱掌握OpenCV库不再困难,本文将引导你通过实际案例入门。这个4000字的教程,建议在10分钟内完成。快速上手OpenCVOpenCV是计算机视觉的基石,Python版教程带你领略其基本操作。它不仅能提升编程技能,还能助你软件开发之路更进一步。计算机视觉概念想象一下,度假时自动标记朋友的脸。这背后就是计算机视觉的力量。...

  • 17234131880opencv入门要学多久
    贾思邱1.首先参考书推荐本比较基础我觉非适合手 《OpenCV教程——基础篇》北航版社 北航虚拟现实实验室许师都使用opencv相经验书质量相错简单易手附带光盘代码靠性相高些直接某些算或问题实现 2.习程序工具习与其课程相同考试必理套根据考试科目推荐教科书划书背重点再做几套习题几套试卷答答疑数定错能够真使...

  • 17234131880如何从入门开始学习OpenCV
    贾思邱OpenCV只是把锋利的快刀,用刀本身不是目的,用刀切出有型的菜才是目的。如果没有编程语言的要求,建议从Python 2.7 +OpenCV 2.4X 入手,为解决问题而思考,有种用Matlab的畅快感。《Learning OpenCV》是本好书,可以在入门后作为工具书查阅。

  • 17234131880opencv入门要学多久
    贾思邱单纯只是入门的话,不论有没有C++基础(假设用C++),两个月应该够了。我当年差不多就用这么长时间。这个时候至少应该知道opencv可以做什么,怎么做了。即是有不明白的,也知道如何去通过谷歌百度解决问题了。

  • 17234131880如何学习opencv比较有效率?求个opencv老师。
    贾思邱1.首先是参考书,推荐你一本比较基础的,我觉得非常适合上手。《OpenCV教程——基础篇》北航出版社 北航的虚拟现实实验室许多师生都在使用opencv,有相当多的经验,这书质量相当不错,简单易上手。附带的光盘中代码可靠性相当高,有些直接就是某些算法或问题的实现。2.然后是学习方法。程序工具的学习与...

  • 17234131880作为大二学生,学习Opencv应该有什么技巧?有什么建议?
    贾思邱首先,由于科技的发展和社会的快速变化,许多网站变成了综合性的网站,不止可以观看电影儿视频电视剧。还可以观看自己喜欢的一些方面的知识和技能。比如现在的哔哩哔哩就是现在年轻人所喜欢的一个网站因为在里面可以学到几乎全部你想要学到的知识和技能,因为哔哩哔哩里面有各种方面的强者他们所做的教学视频供...

  • 17234131880如何从入门开始学习OpenCV
    贾思邱先去下载最新版OpenCV,网址如下:http:\/\/nchc.dl.sourceforge.net\/project\/opencvlibrary\/opencv-win\/2.4.3\/OpenCV-2.4.3.exe。下载完成后解压到相应目录。本人解压到D:\\Program Files\\OpenCV2.4.3。有的文章提到使用CMake把OpenCV下面的范例生成为Visual Studio的工程,此处我没有这样做。直接使用...

  • 17234131880机器视觉需要学什么 如何快速入门
    贾思邱其次,图像处理是核心环节。工业应用通常在工控机上进行,但嵌入式硬件也逐渐兴起。学习C#、.NET、QT等编程语言是基础,开源的OpenCV或商用的Halcon、VisionPro是算法入门的好选择。深入学习机器学习,将有助于提升算法性能。理论方面,《机器视觉算法与应用》一书值得深入研读。运动控制则是精确操控设备的...

  • 17234131880OpenCV自学笔记分享 Python与OpenCV基础入门:零起点学习计算机视觉 第0...
    贾思邱OpenCV基础入门:图像与视频操作概览在OpenCV学习之旅的第三天,我们开始探索图像和视频的基本操作。首先,我们通过 cv2.imread() 函数来加载图片,这个函数是图像处理的起点。接着,通过 cv2.split() 函数,我们将图像分解为红、绿、蓝(RGB)三个颜色通道,这对于理解颜色信息和进行图像处理至关重要。

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网