1. 2D卷积(图像滤波)
图像作为一个一维信号,也可以通过多种低通过滤器(low-pass filters, LPF)和高通过滤器(high-pass filters, HPF)来过滤。
低通过滤器可以去除噪声,或者模糊图像。高通过滤器可以帮助在一个图像中找出边界。
OpenCV提供了一个函数,cv2.filter2D(),对一个图像进行内核卷积。
比方说使用一个5x5的滤波内核,即表示针对每一个像素,它的色值为:它周边5x5区域内所有像素色值累加,然后除25(等于计算这个区域内素有像素色值的均值)。
对一个图像里的所有像素都进行上述处理之后,等到一个过滤后的图像。
cv2.filter2D(src, ddepth, kernel)
a)src:源图像
b)ddepth:目标图像深度(图像深度:存储每个像素所用的位数)
c)kernel:卷积核,一个单通道浮点型矩阵
结果例子:
一个5x5的核,和一个50x50的核
2.图像模糊(图像平滑)
图像模式是使用一个低通滤波内核对一个图像进行卷积操作。可以去除噪声。
OpenCV提供了主要的4种模糊技术:
1)均值模糊
通过一个标准的箱式滤波器对一个图像进行卷积。取得核范围内所有像素色值的平均值然后赋给中心的像素。
cv2.blur(img, (5,5))
2)高斯模糊
使用一个高斯内核,需要制定核的大小是一个正奇整数。需要制定X和Y方向的标准偏差。
对于去除图像里的高斯噪声非常高效。
(高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声)
cv2.GaussianBlur(src, ksize, sigmaX)
a)src:源图像
b)ksize:卷积核大小
c)X方向定向偏差
3)中值模糊
求卷积核内像素的中值,并赋值给中心像素。对去除椒盐噪声非常高效。
相对于高斯内核和标准箱式内核,可能会给像素赋在源图像里不存在的色值。中值平滑肯定会给中心像素设定一个在源图像存在的像素色值。这也非常有效地减少噪声。
cv2.medianBlur(src, ksize)
a)src:源图像
b)ksize:卷积核大小
4)双边模糊
相对于以上3种模糊方法是模糊边界,双边平滑保留边界,但是处理速度相对3种方法要慢。
cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace)
a)src:源图像
b)d:参与模糊的邻居像素个数
c)sigmaColor:值越大表示在像素邻域内更远的颜色会被混合在一起,会生成一个更大的颜色近相等的区域
d)sigmaSpace:值越大表示颜色足够相似的更远的像素互相影响
结果例子:
-- End --
相关推荐
作为一名 IT 行业大师,我将从基础概念出发,向您介绍 OpenCV 的学习笔记,涵盖图像处理的基础概念、图像处理技术、图像预处理、图像分割、边缘检测、形状描述等方面的知识点。 基础概念 * 图像(Image):是一个...
在本"opencv学习笔记"中,我们将深入探讨OpenCV的核心概念、功能以及如何使用C++进行编程。 一、OpenCV基础 OpenCV最初由Intel公司开发,现在由它自己的非营利组织OpenCV.org维护。它的主要目标是提供高效和灵活的...
OpenCV是一个开源的计算机视觉和机器学习软件库,广泛应用于无人机、安防、图像处理等领域。...本学习笔记中的源码注释将帮助读者更快地掌握OpenCV的使用,从而在实际项目中更高效地解决计算机视觉相关问题。
在本篇学习笔记中,我们将深入探讨Python结合OpenCV如何利用Sobel算子进行图像边缘检测,这是计算机视觉中寻找图像轮廓和结构的重要技术。 Sobel算子是一种离散微分算子,它通过计算图像像素的一阶和二阶偏导数来...
OpenCV是一个强大的计算机视觉库,广泛应用于图像处理和计算机视觉任务。以下是一些关键知识点: 1. **环境配置**: - 操作系统:Windows 7 - Python版本:3.6.3 - OpenCV版本:3.4.2 - 需要的依赖:NumPy包 -...
Emgu CV是一个跨平台的开源计算机视觉库,它为.NET开发者提供了与OpenCV相同的功能,包括图像处理、模式识别和机器学习算法。本文将重点介绍在C#中使用Emgu CV时的一些关键知识点,如二值化、灰度化、卷积、高斯模糊...
总结来说,这个学习笔记将涵盖OpenCV 4.1.0的核心功能,包括图像处理、特征检测、机器学习以及与QT5.14的集成。通过实践这些知识点,你将能够构建自己的机器视觉系统,实现图像分析和处理的多样化应用。同时,记忆...
在计算机视觉领域,OpenCV是一个广泛使用的开源库,它提供了丰富的功能用于图像处理和计算机视觉任务。以下是对标题“学习笔记1”和描述中提到的一些核心知识点的详细说明: 1. 幅度谱:幅度谱是图像频域表示的一...
在OpenCV库中,轮廓发现是一项重要的图像处理技术,它用于识别和提取图像中的对象边界。这个过程基于图像的边缘检测,而边缘检测通常受到阈值选择的影响。本篇学习笔记将详细介绍如何在OpenCV中进行轮廓发现,并提供...
OpenCV(Open Source Computer Vision Library)是其中一款强大的开源计算机视觉库,它为处理图像和视频提供了丰富的功能。本文将深入探讨如何利用Python与OpenCV库进行视频处理。 首先,Python因其简洁的语法和...
在本压缩包"python+OpenCV.zip"中,包含了使用Python和OpenCV库进行图像处理的一系列教程。这些教程在Jupyter Notebook环境下编写,便于学习和实践。通过这些笔记,我们可以深入理解OpenCV的核心功能,并掌握如何在...
OpenCV(开源计算机视觉库)是一个强大的跨平台计算机视觉库,它包含了大量的图像处理和计算机视觉功能,广泛应用于机器学习、图像识别、视频分析等领域。在本教程中,我们将聚焦于如何使用OpenCV来打开并操作笔记本...
计算机视觉学习笔记8-噪声与滤波 计算机视觉中,图像噪声是一个非常重要的问题,噪声的产生会严重影响图像质量。为了解决这个问题,需要对图像进行滤波处理。滤波是一种可以有效去除图像噪声的方法。常见的滤波方法...
### 机器视觉笔记第四章:图像特效 #### 一、图像特效概述 图像特效是指通过对图像进行特定处理,以达到某种艺术效果或...通过学习本章内容,读者可以更好地理解和掌握图像处理的基本技能,并能够应用于实际项目中。
接下来,安装额外的库,如图像处理和计算机视觉相关的库: ```bash sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev ``` 由于...
主要知识点集中在使用OpenCV库,特别是其内置的Haar特征分类器,这是一种基于机器学习的方法,用于在图像中定位人脸。 首先,Haar特征分类器是OpenCV库中的一个预训练模型,它能够检测特定的图像特征,如人脸。这个...
在C语言中实现这些功能,开发者需要具备图像处理算法的知识,例如卷积、直方图均衡化等,并且可能需要利用开源库如OpenCV等来简化开发过程。 【压缩包子文件的文件名称列表】: 1. mh.doc:这可能是一个Word文档,...
背景减除方法是一种在计算机视觉和图像处理领域中广泛应用的技术,用于从连续视频流或静态图像中识别和分割前景物体。这种技术的核心是通过建立一个背景模型,然后将每一帧图像与这个模型进行比较,找出那些与背景...
标题 "Image-editing-application-using-python" 暗示我们将探讨如何使用Python编程语言来创建一个图像编辑应用...通过这个项目,学习者不仅可以掌握Python图像处理的技能,还能了解到如何在实际项目中组织和管理代码。
此外,笔记可能还涉及了多媒体处理的编程接口(API),如OpenCV用于图像处理,FFmpeg用于音视频处理,DirectX或OpenGL用于图形渲染。这些API的使用方法、常见问题和解决策略可能会被详细记录。同时,笔记可能也涵盖...