1 概述非线性滤波有中值滤波、双边滤波等。正如我们在上节中讲到的,线性滤波可以实现很多种不同的图像变换。而非线性滤波,如中值滤波器和双边滤波器,有时可以达到更好的实现效果。在上节中,我们所考虑的滤波器都是线性的,即两个信号之和的响应和它们各自响应之和相等。换句话说,每个像素的输出值是一些输入像素的加权和。线性滤波器易于构造,并且易于从频率响应角度来进行分析。然而,在很多情况下,使用邻域像素的非线
1 概述方框滤波(box Filter)被封装在一个名为boxblur的函数中,即boxblur函数 的作用是使用方框滤波器(box filter)来模糊一张图片,从src输入,从dst输出。2 参数讲解函数原型如下。 C++void boxFilter(InputArray src, OutArray dst, int ddepth, Size ksize, Point anchor =
1 概述滤波说的通俗一点,就是平滑处理。平滑处理(smoothing)也称模糊处理(bluring),是一种简单且使用频率很高的图像处理方法。平滑处理的用途有很多,最常见的是用来减少图像上的噪点或者失真。在涉及到降低图像分辨率时,平滑处理是非常好用的方法。2 图像滤波与滤波器图像滤波,指在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响
3 示例程序:XML和YAML文件的写入让我们先看一个关于XML或YAML文件的写入实例,示例代码如下://---------------------------------【头文件、命名空间包含部分】-------------------------------// 描述:包含程序所使用的头文件和命名空间//-------------------------------------
1 XML和YAML 文件简介本节我们将一起认识XML和YAML这两种文件类型。 所谓XML,即eXtensible Markup Language,翻译成中文为“可扩展标识语 言”。首先,XML是一种元标记语言。所谓“元标记”,就是开发者可以根据自身需要定义自己的标记,比如可以定义标记<book>、<name>。任何满足XML 命名规则的名称都可以标记,这就向不同的应用程序打开了的大门。此外,
接着上一节继续讲述傅里叶变换4 返回DFT最优尺寸大小:getOptimalDFTSize函数getOptimalDFTSize函数返回给定向量尺寸的傅里叶最优尺寸大小。为了提高离散傅里叶变换的运行速度,需要扩充图像,而具体扩充多少,就由这个函数来计算得到。C++int getOptimalDFTSize(int vecsize)此函数的唯一一个参数为int类型的vecsize,向量尺寸,即图片的
1 概述离散傅里叶变换(Discrete Fourier Transform,缩写为DFT),是指傅里叶变换 在时域和频域上都呈现离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号做DFT,也应当对其经过周期延拓成为周期信号再进行变换。在实际
1 概述本节我们将学习如何用OpenCV进行图像对比度和亮度值的动态调整。2 理论依据首先了解一下算子的概念。一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像。下面是算子的一般形式。本节所讲解的图像亮度和对比度的调整操作,其实属于图像处理变换中比较简单的一种——点操作(point operators)。点操作有一个特点:仅仅根据输入像素值(有时可加上某些全局信息或参数),来
1 概述上篇博客中我们讲解了如何使用 addWeighted 函数进行图像混合操作,以及如何将ROI和addWeighted函数结合起来,对指定区域进行图像混合操作。而为了更好地观察一些图像材料的特征,有时需要对RGB三个颜色通道的分量进行分别显示和调整。通过OpenCV的split和merge方法可以很方便地达到目的。 本篇博客,我们会详细介绍这两个互为“冤家”的函数。首先来看看进行通道分离的s
1 概述我们一起学习在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及如何将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操作。2 感兴趣区域: ROI在图像处理领域,我们常常需要设置感兴趣区域(ROI, region of interest),来专注或者简化工作过程。也就是从图像中选择的一个图像区域,这个区域是图像分析所关注
1 图像在内存之中的存储方式在之前的章节中,我们已经了解到图像矩阵的大小取决于所用的颜色模型,确切地说,取决于所用通道数。如果是灰度图像,矩阵就会如下图所示。而对多通道图像来说,矩阵中的列会包含多个子列,其子列个数与通道数相等。例如,如下图所示RGB颜色模型的矩阵。可以看到,OpenCV中子列的通道顺序是反过来的—BGR而不是RGB。很多情况下,因为内存足够大,可实现连续存储,因此,图像中的各行就
1 数字图像存储概述我们可以通过各种各样的方法从现实世界获取到数字图像,如借助相机、扫描仪、计算机摄像头或磁共振成像等。通常由显示屏上看到的都是真实而漂亮的图像,但是这些图像在转化到我们的数字设备中时,记录的却是图像中的每个点的数值。比如在下图中你可以看到草坪的颜色是一个包含众多强度值的像素点矩阵。可以这样说,矩阵就是图像在数码设备中的表现形式。OpenCV 作为一个计算机视觉库,其主要的工作是处
1 概述在OpenCV中,HighGUI模块为高层GUI图形用户界面模块,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。本章旨在为大家展开讲解OpenCV中最常用到的一些交互操作,包括图像的载入、显示和输出,为程序添加滑动条,以及鼠标操作等常用内容。2 图像的载入、显示和输出到文件学习过以往版本OpenCV的读者应该都清楚,对于OpenCV1.0时代的基于C语言接口
1 前沿OpenCV 作为一个在全球使用人数众多的计算机视觉库,其实官方已经准备了大量的示例程序,供广大初学者学习。而市面上绝大多数的OpenCV书籍教程和网络博文的第一手知识来源,就是这些官方提供的技术文档和示例程序。2 光流法(optical flow)光流(optical flow)法是目前运动图像分析的重要方法,由Gibso于1950年首先提出。光流用来指定时变图像中模式的运动速度,因为当
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号