当前位置:文档之家› opencv几种常见滤波器使用方法

opencv几种常见滤波器使用方法

opencv几种常见滤波器使用方法
opencv几种常见滤波器使用方法

OpenCv中几种常见的滤波器

一. 滤波器的作用

1.问题:数字图像信号的频率分布?

回答:信号或者图像的能量大部分在中低频段,少部分有用信号在高频段被噪声淹没(噪声都是高频信号)。因此设计滤波器能降低高频成分幅度就能减弱噪声影响。

2.问题:为什么要进行图像滤波?

回答:1.适应图像处理要求,消除图像数字化时所混入的噪声。

2.提取对象的特征作为图像识别的特征模式(没遇到过!)

3.问题:如何理解滤波器?

回答:把滤波器想象成一个包含加权系数的窗口,当使用滤波器平滑处理图像时,相当于把窗口放到图像上,透过窗口看图像。

4.问题:滤波器实现的结果是怎么样的?

回答:对图像做平滑或滤波后图像变得更模糊。

二.滤波器分类

2.1线性滤波器

1.低通滤波器:允许低频率通过

2.高通滤波器:允许高频率通过

3.带通滤波器:允许一定范围频率通过

4.带阻滤波器:阻止一定范围频率通过

5.全通滤波器:允许所有频率通过,只是改变相位

2.1.1 Opencv中提供的线性滤波函数

1.方框滤波:boxFilter函数

函数原型:void boxFilter (InputArray src,OutputArray dst,int ddepth,Size

ksize,Pointanchor=Point(-1,-1),boolnormalize=true,int borderType=BORDER_DEFAULT)

参数说明:InputArray,输入图像src。

OutputArray ,输出图像dst。

Int类型ddepth,输出图像深度,-1代表使用原图src 深度。

Size类型ksize,内核大小,一般用Size(w,h),w为宽度,h为深度。

Point类型anchor,被平滑的点,表示取内核中心,默认值Point(-1,-1)。

Bool类型normalize,标识符,表示内核是否被归一化。默认值为true。

Int类型boderType,推断图像外部像素的某种边界模式。默认值BORDER_DEFAULT。

2.均值滤波:blur函数

函数原型:void blur(InputArray src,OutputArray dst,int ddepth,Size ksize,Pointanchor=Point(-1,-1), int borderType=BORDER_DEFAULT)

参数说明:InputArray,输入图像src。

OutputArray ,输出图像dst。

Int类型ddepth,输出图像深度,-1代表使用原图src 深度。

Size类型ksize,内核大小,一般用Size(w,h),w为宽度,h为深度。

Point类型anchor,被平滑的点,表示取内核中心,默认值Point(-1,-1)。

Int类型boderType,推断图像外部像素的某种边界模式。默认值BORDER_DEFAULT。

3.高斯滤波:GaussianBlur函数

函数原型:void GaussianBlur(InputArray src,OutputArray dst, Size ksize,double sigmaX,double sigmaY=0,

int borderType=BORDER_DEFAULT)

参数说明:InputArray,输入图像src。

OutputArray ,输出图像dst.

Size类型ksize,内核大小,一般用Size(w,h),w为宽度,h为深度。

double类型的sigmaX,表示高斯核函数在X方向上的标准偏差。

Double类型的sigmaY,表示高斯核函数在Y方向上的标准偏差,sigmaY有默认值为0.如果sigmaX和sigmaY都为0,由内核的宽高计算出来。

Int类型boderType,推断图像外部像素的某种边界模式。默认值BORDER_DEFAULT。

4.补充:boxblur函数中的参数normalize,当normalize=true时为均值滤波。言外之意,均值滤波是方框滤波归一化后的特殊情况。

2.1.2 线性滤波器的计算方法

图注:邻域滤波(卷积):左边图像与中间图像的卷积产生右边图像。目标图像中蓝色标记的像素是利用原图像中红色标记的像素计算得到的。

线性滤波处理的输出像素值是输入像素值

的加权和:

其中的加权和为,我们称其为“核”,滤波器的加权系数,即滤波器的“滤波系数”。

上面的式子可以简单写作:

其中f表示输入像素值,h表示加权系数“核“,g表示输

出像素值。

举例说明:

对待处理的当前像素,选择一个内核大小,该内核为其邻近的若干个像素组成,用内核的均值来替代原像素的值的方法。

取出图像中的几个像素点,并标注需要处理的像素点F(X,Y)

123

4F(X,Y)5

678

图注:1~8为(x,y)的邻近像素

设置内核大小

通过均值滤波器后其计算为:

F(X,Y)=

(f(x-1,y-1) + f(x,y-1)+ f(x+1,y-1) + f(x-1,y) + f(x,y) + f(x+1,y) + f(x-1,y+1) + f(x,y+1) + f(x+1,y+1))/9

设置内核大小

通过方框滤波器后其计算为:

F(X,Y)=

f(x-1,y-1) + f(x,y-1)+ f(x+1,y-1) + f(x-1,y) + f(x,y) + f(x+1,y) + f (x-1,y+1) + f(x,y+1) + f(x+1,y+1)

通过高斯滤波器利用公式:

代入x,y 值可以算出F(X,Y)的值。

2.2 非线性滤波器

1.中值滤波:像素点邻域灰度值的中值代替该像素点的灰度值。

2.双边滤波:基于空间分布的高斯滤波函数,比高斯滤波多一个sigma-d的高斯方差。

2.2.1 Opencv中提供的非线性滤波函数

1.中值滤波:medianBlur函数

函数原型:void medianBlur(InputArray src,OutputArray dst,int ksize)

参数说明:InputArray,输入图像src。

OutputArray ,输出图像dst.

int类型ksize,孔径的线性尺寸,这个参数必须是大于1的奇数

2.双边滤波:bilateralFilter(InputArray src,OutputArray dst, int

d, double sigmaColor,double sigmaSpace,

int borderType=BORDER_DEFAULT)

参数说明:InputArray,输入图像src。

OutputArray ,输出图像dst.

Int类型的d,表示过滤过程每个像素邻域的直径

double类型的sigmaColor,表示颜色滤波器的sigma 值

Double类型的sigmaSpace,表示坐标空间的sigma 值

Int类型boderType,推断图像外部像素的某种边界模式。默认值BORDER_DEFAULT。

)

三.几种滤波器的使用

本示例在opencv3.0+VS2012运行环境下测试,不管利用opencv或者VS什么版本其实程序都是一样的。只不过在包含头文件时注意位置就好了。

#include

using namespace cv;

using namespace std;

#define WINDOWS_NAME1"【原图】"

#define WINDOWS_NAME2"【方框滤波】"

#define WINDOWS_NAME3"【均值滤波】"

#define WINDOWS_NAME4"【高斯滤波】"

#define WINDOWS_NAME5"【中值滤波】"

#define WINDOWS_NAME6"【双边滤波】"

int main()

{

system("color 5E");//把dos框背景颜色改变,只是看看效果,默认dos框背景为黑色。

Mat srcImage=imread("D:\\ProgramFiles\\图片

\\Example4.jpg");//读入原图

if (!srcImage.data)

{

cout<<"读取srcImage错误~!"<

return false;

}

//创建5个Mat矩阵用来存放滤波数据,利用clone函数使其大小和原图大小相同

Mat box_Image=srcImage.clone();

Mat blur_Image=srcImage.clone();

Mat gaussian_Image=srcImage.clone();

Mat median_Image=srcImage.clone();

Mat bilateral_Image=srcImage.clone();

//=================显示原图

===================

imshow(WINDOWS_NAME1,srcImage);

//=================方框滤波

===================

namedWindow(WINDOWS_NAME2,1);

boxFilter(srcImage,box_Image,-1,Size(3,3),Point(-1,-1 ),false,BORDER_DEFAULT);

imshow(WINDOWS_NAME2,box_Image);

//=================均值滤波

===================

namedWindow(WINDOWS_NAME3,1);

blur(srcImage,blur_Image,Size(3,3),Point(-1,-1),BORD ER_DEFAULT);

imshow(WINDOWS_NAME3,blur_Image);

//=================高斯滤波

===================

namedWindow(WINDOWS_NAME4,1);

GaussianBlur(srcImage,gaussian_Image,Size(3,3),0,0,B ORDER_DEFAULT);

imshow(WINDOWS_NAME4,gaussian_Image);

//=================中值滤波

===================

medianBlur(srcImage,median_Image,7);

imshow(WINDOWS_NAME5,median_Image);

//=================双边滤波

===================

namedWindow(WINDOWS_NAME6,1);

bilateralFilter(srcImage,bilateral_Image,25,25*2,25/2, BORDER_DEFAULT);

imshow(WINDOWS_NAME6,bilateral_Image);

cvWaitKey(0);

return 0;

}

OpenCV主要函数介绍

4.1 OpenCV主要函数介绍 1) cvLoadImage 从文件中读取图像 IplImage* cvLoadImage(const char* filename,int flags=CV_LOAD_IMAGE_COLOR ); 函数cvLoadImage从指定文件读入图像,返回读入图像的指针。其中filename是要被读入的文件的文件名;flags指定读入图像的颜色和深度。 2)cvSaveImage 保存图像到文件 int cvSaveImage( const char* filename, const CvArr* image ); 函数cvSaveImage保存图像到指定文件。其中filename保存文件名。image 要保存的图像。图像格式的的选择依赖于filename的扩展名,只有8位单通道或者3通道(通道顺序为'BGR' )可以使用这个函数保存。 3)cvQueryFrame从摄像头或者文件中抓取并返回一帧 IplImage* cvQueryFrame( CvCapture* capture ); 函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。其中capture视频获取结构。。 4)cvCaptureFromCAM 初始化摄像头 CvCapture* cvCaptureFromCAM( int index ); 函数cvCaptureFromCAM给从摄像头的视频流分配和初始化CvCapture结构。 其中index要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。 5)cvHaarDetectObjects 用来检测图像中的人脸区域 CV API(CvSeq*) cvHaarDetectObjects( const CvArr* image, CvHaarClassifierCascade* cascade, CvMemStorage* storage, double scale_factor CV_DEFAULT(1.1), int min_neighbors CV_DEFAULT(3), int flags CV_DEFAULT(0), CvSize min_size CV_DEFAULT(cvSize(0,0)), CvSize max_size CV_DEFAULT(cvSize(0,0))); 用于快速检测人脸区域,便于提取得到人脸数据。其中image 为被检图像,cascade为 haar分类器级联的内部标识形式,storage 为用来存储检测到的一

有源低通滤波器设计报告要点

课程设计(论文)说明书 题目:有源低通滤波器 院(系):信息与通信学院 专业:通信工程 学生姓名: 学号: 指导教师: 职称: 2010年 12 月 19 日

摘要 低通滤波器是一个通过低频信号而衰减或抑制高频信号的部件。理想滤波器电路的频响在通带内应具有一定幅值和线性相移,而在阻带内其幅值应为零。有源滤波器是指由放大电路及RC网络构成的滤波器电路,它实际上是一种具有特定频率响应的放大器。滤波器的阶数越高,幅频特性衰减的速率越快,但RC网络节数越多,元件参数计算越繁琐,电路的调试越困难。根据指标,本次设计选用二阶有源低通滤波器。 关键词:低通滤波器;集成运放UA741;RC网络 Abstract Low-pass filter is a component which can only pass the low frequency signal and attenuation or inhibit the high frequency signal . Ideal frequency response of the filter circuit in the pass band should have a certain amplitude and linear phase shift, and amplitude of the resistance band to be zero. Active filter is composed of the RC network and the amplifier, it actually has a specific frequency response of the amplifier. Higher the order of the filter, the rate of amplitude-frequency characteristic decay faster, but more the number of RC network section, the more complicated calculation of device parameters, circuit debugging more difficult. According to indicators ,second-order active low-pass filter is used in this design . Key words:Low-pass filter;Integrated operational amplifier UA741;RC network,

opencv函数目录-Cv图像处理

目录 1 梯度、边缘和角点 1.1 Sobel 1.2 Laplace 1.3 Canny 1.4 PreCornerDetect 1.5 CornerEigenValsAndVecs 1.6 CornerMinEigenVal 1.7 CornerHarris 1.8 FindCornerSubPix 1.9 GoodFeaturesToTrack 2 采样、插值和几何变换 2.1 InitLineIterator 2.2 SampleLine 2.3 GetRectSubPix 2.4 GetQuadrangleSubPix 2.5 Resize 2.6 WarpAffine 2.7 GetAffineTransform 2.8 2DRotationMatrix 2.9 WarpPerspective 2.10 WarpPerspectiveQMatrix 2.11 GetPerspectiveTransform 2.12 Remap 2.13 LogPolar 3 形态学操作 3.1 CreateStructuringElementEx 3.2 ReleaseStructuringElement 3.3 Erode 3.4 Dilate 3.5 MorphologyEx 4 滤波器与色彩空间变换 4.1 Smooth 4.2 Filter2D 4.3 CopyMakeBorder 4.4 Integral 4.5 CvtColor 4.6 Threshold 4.7 AdaptiveThreshold 5 金字塔及其应用 5.1 PyrDown 5.2 PyrUp 6 连接部件 6.1 CvConnectedComp

各种滤波器及其典型电路.(DOC)

第一章滤波器 1.1 滤波器的基本知识 1、滤波器的基本特性 定义:滤波器是一种通过一定频率的信号而阻止或衰减其他频率信号的部件。 功能:滤波器是具有频率选择作用的电路或运算处理系统,具有滤除噪声和分离各种不同信号的功能。 类型: 按处理信号形式分:模拟滤波器和数字滤波器。 按功能分:低通、高通、带通、带阻、带通。 按电路组成分:LC无源、RC无源、由特殊元件构成的无源滤波器、RC有源滤波器 按传递函数的微分方程阶数分:一阶、二阶、…高阶。 如图1.1中的a、b、c、d图分别为低通滤波器、高通滤波器、带通滤波器、带阻滤波器传输函数的幅频特性曲线。

图1.1 几种滤波器传输特性曲线 .2、模拟滤波器的传递函数与频率特性 (一)模拟滤波器的传递函数 模拟滤波电路的特性可由传递函数来描述。传递函数是输出与输入信号电压或电流拉氏变换之比。经分析,任意个互相隔离的线性网络级联后,总的传递函数等于各网络传递函数的乘积。这样,任何复杂的滤波网络,可由若干简单的一阶与二阶滤波电路级联构成。 (二)模拟滤波器的频率特性 模拟滤波器的传递函数H(s)表达了滤波器的输入与输出间的传递关系。若滤波器的输入信号Ui 是角频率为w 的单位信号,滤波器的输出Uo(jw)=H(jw)表达了在单位信号输入情况下的输出信号随频率变化的关系,称为滤波器的频率特性函数,简称频率特性。频率特性H(jw)是一个复函数,其幅值A(w)称为幅频特性,其幅角∮(w)表示输出信号的相位相对于输入信号相位的变化,称为相频特性 (三)滤波器的主要特性指标 1、特征频率: (1)通带截止频f p=wp/(2)为通带与过渡带边界点的频率,在该点信号增益 下降到一个人为规定的下限。 (2)阻带截止频f r=wr/(2)为阻带与过渡带边界点的频率,在该点信号衰耗 (增益的倒数)下降到一人为规定的下限。 (3)转折频率f c=wc/(2)为信号功率衰减到1/2(约3dB)时的频率,在很多 情况下,常以fc 作为通带或阻带截频。 (4)固有频率f0=w0/(2)为电路没有损耗时,滤波器的谐振频率,复杂电路 往往有多个固有频率。 2、增益与衰耗 (1)对低通滤波器通带增益Kp 一般指w=0时的增益也用A (0)表示;高 通 指w→∞时的增益也用表示;带通则指中心频率处的增益。 (2)对带阻滤波器,应给出阻带衰耗,衰耗定义为增益的倒数。 ()A

matlab仿真一阶低通滤波器幅频特性和相频特性

freqs 模拟滤波器的频率响应 语法: h = freqs(b,a,w) [h,w] = freqs(b,a) [h,w] = freqs(b,a,f) freqs(b,a) 描述: freqs返回一个模拟滤波器的H(jw)的复频域响应(拉普拉斯格式) 请给出分子b和分母a h = freqs(b, a, w) 根据系数向量计算返回模拟滤波器的复频域响应。freqs计算在复平面虚轴上的频率响应h,角频率w确定了输入的实向量,因此必须包含至少一个频率点。 [h, w] = freqs(b, a) 自动挑选200个频率点来计算频率响应h [h, w] = freqs(b, a, f) 挑选f个频率点来计算频率响应h 例子: 找到并画出下面传递函数的频率响应 Matlab代码: a = [1 0.4 1]; b = [0.2 0.3 1]; w = logspace(-1, 1);

logspace功能:生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。n如果省略,则默认值为50。 freqs(b, a, w); You can also create the plot with: h = freqs(b,a,w); mag = abs(h); phase = angle(h); subplot(2,1,1), loglog(w,mag) subplot(2,1,2), semilogx(w,phase) To convert to hertz, decibels, and degrees, use: f = w/(2*pi); mag = 20*log10(mag); phase = phase*180/pi; 算法: freqs evaluates the polynomials at each frequency point, then divides the numerator response by the denominator response: s = i*w; h = polyval(b,s)./polyval(a,s)

OPENCV库函数使用说明

OPENCV(Intel Open Source Computer Vision Library)是一种数字图像处理和计算机视觉的函数库,由Intel公司微处理器实验室(Intel’s Microprocessor Research Lab)的视觉交互组(The Visual Interactivity Group)开发。它可以在Windows系统、Linux系统、MacOSx系统等操作平台上使用,也可以和其他编程工具结合,以满足不同的使用要求。使用OPENCV使用C/C++编写,包含300多个图像处理函数,有以下几个对立的子库组成: 1.CXCORE:一些基本函数(各种数据类型的基本运算等) 2.CV:图像处理和计算机视觉算法(图像处理、结构分析、运动分析、物体跟 踪和模式识别等) 3.HIGHGUI:用户交互部分(图形界面,图像视频输入输出,系统调用函数) 4.CVAUX:一些实验性的函数(三维跟踪等) 在这些库函数的支持下,用户可以直接调用滤波函数,形态学处理,图像特征提取,轮廓提取算法和跟踪算法,也可以添加自己编写的子函数,不但能完成复杂的开发任务,还可以提高效率,达到事半功倍的效果。 OPENCV的重要特性: 1.拥有包括300多个C函数的跨平台的中、高层API。它不依赖于其他的外部库——尽管也可以使用某些外部库。 2.对非商业应用和商业应用都是免费(FREE)的。 3.为Integrated Performance Primitives(IPP)提供了透明的接口。这意味着如果有为特定处理器优化的IPP库,OPENCV将在运行时自动加载这些库。 在VC++环境中OPENCV的使用设置: Microsoft公司开发的Visual C++是一种具有高度综合性能的软件开发工具。用它开发出的程序具有运行速度快,可移植能力强等优点,在对数字图像处理进行处理时经常采用Visual C++进行编程,通过对VC进行配置,就可以在编程过程中直接使用OPENCV的函数编写代码,减少了工作量,提高了运行效率。 在OPENCV安装完成后,首先需要把它的路径加入到系统环境变量中,然后再VC菜单Tools→Options→Directories下设置Library files路径,再选择Source files,最后选择Include files,就可以加入路径,如错误!未找到引用源。所示。设置完成后,就可以新建或打开一个使用OPENCV的工程。 打开工程后,选择菜单Project→Settings,然后将Setting for选为All Configurations,再选择右边的link标签,在Object/library modules加上工程属性中使用的库,这样就可以顺利编程。

滤波器的主要特性指标

电子知识 1、特征频率: ①通带截频fp=wp/(2p)为通带与过渡带边界点的频率,在该点信号增益下降到一个人为规定的下限。 ②阻带截频fr=wr/(2p)为阻带与过渡带边界点的频率,在该点信号衰耗(增益的倒数)下降到一人为规定的下限。 ③转折频率fc=wc/(2p)为信号功率衰减到1/2(约3dB)时的频率,在很多情况下,常以fc作为通带或阻带截频。 ④固有频率f0=w0/(2p)为电路没有损耗时,滤波器的谐振频率,复杂电路往往有多个固有频率。 2、增益与衰耗 滤波器在通带内的增益并非常数。 ①对低通滤波器通带增益Kp一般指w=0时的增益;高通指w→∞时的增益;带通则指中心频率处的增益。 ②对带阻滤波器,应给出阻带衰耗,衰耗定义为增益的倒数。 ③通带增益变化量△Kp指通带内各点增益的最大变化量,如果△Kp以dB为单位,则指增益dB值的变化量。 3、阻尼系数与品质因数 阻尼系数是表征滤波器对角频率为w0信号的阻尼作用,是滤波器中表示能量衰耗的一项指标。 阻尼系数的倒数称为品质因数,是*价带通与带阻滤波器频率选择特性的一个重要指标,Q= w0/△w。式中的△w为带通或带阻滤波器的3dB带宽,w0为中心频率,在很多情况下中心频率与固有频率相等。 4、灵敏度 滤波电路由许多元件构成,每个元件参数值的变化都会影响滤波器的性能。滤波器某一性能指标y对某一元件参数x变

化的灵敏度记作Sxy,定义为:Sxy=(dy/y)/(dx/x)。 该灵敏度与测量仪器或电路系统灵敏度不是一个概念,该灵敏度越小,标志着电路容错能力越强,稳定性也越高。 5、群时延函数 当滤波器幅频特性满足设计要求时,为保证输出信号失真度不超过允许范围,对其相频特性∮(w)也应提出一定要求。在滤波器设计中,常用群时延函数d∮(w)/dw*价信号经滤波后相位失真程度。群时延函数d∮(w)/dw越接近常数,信号相位失真越小。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。

巴特沃斯数字低通滤波器要点说明

目录 1.题目........................................................ .................................. .2 2.要求........................................................ (2) 3.设计原理........................................................ . (2) 3.1 数字滤波器基本概念......................................................... (2) 3.2 数字滤波器工作原理......................................................... (2) 3.3 巴特沃斯滤波器设计原理 (2) 3.4脉冲响应不法......................................................... .. (4) 3.5实验所用MATLAB函数说

明 (5) 4.设计思路........................................................ .. (6) 5、实验内容........................................................ . (6) 5.1实验程序......................................................... . (6) 5.2实验结果分析......................................................... . (10) 6.心得体会........................................................ . (10) 7.参考文献........................................................ . (10) 一、题目:巴特沃斯数字低通滤波器 二、要求:利用脉冲响应不变法设计巴特沃斯数字低通滤波器,通带截止频率100HZ,采样频率1000HZ,通带最大衰减为0.5HZ,阻带最小衰减为10HZ,画出幅频、相频相应相应曲线。并假设一个信号x(t)=sin(2*pi*f1*t)+sin(2*pi*f2*t),其中f1=50HZ,f2=200HZ。用此信号验证

OPENCV函数

Opencv函数 分配图像空间: IplImage*cvCreateImage(CvSize size,int depth,int channels); size:cvSize(width,height); depth:IPL_DEPTH_8U,IPL_DEPTH_8S,IPL_DEPTH_16U, IPL_DEPTH_16S,IPL_DEPTH_32S,IPL_DEPTH_32F, IPL_DEPTH_64F channels:1,2,3or4. 注意数据为交叉存取.彩色图像的数据编排为b0g0r0b1g1 r1... 举例: //分配一个单通道字节图像 IplImage*img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); //分配一个三通道浮点图像 IplImage*img2=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3); 释放图像空间: IplImage*img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); cvReleaseImage(&img); 复制图像: IplImage*img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); IplImage*img2; img2=cvCloneImage(img1); 设定/获取兴趣区域: void cvSetImageROI(IplImage*image,CvRect rect); void cvResetImageROI(IplImage*image); vRect cvGetImageROI(const IplImage*image); 大部分OpenCV函数都支持ROI. 设定/获取兴趣通道: void cvSetImageCOI(IplImage*image,int coi);//0=all int cvGetImageCOI(const IplImage*image); 大部分OpenCV函数暂不支持COI.

滤波器分类及原理..

滤波器原理 滤波器是一种选频装置,可以使信号中特定的频率成分通过,而极大地衰减其它频率成分。在测试装置中,利用滤波器的这种选频作用,可以滤除干扰噪声或进行频谱分析。 广义地讲,任何一种信息传输的通道(媒质)都可视为是一种滤波器。 因为,任何装置的响应特性都是激励频率的函数,都可用频域函数描述其 传输特性。因此,构成测试系统的任何一个环节,诸如机械系统、电气网 络、仪器仪表甚至连接导线等等,都将在一定频率范围内,按其频域特性, 对所通过的信号进行变换与处理。 本文所述内容属于模拟滤波范围。主要介绍模拟滤波器原理、种类、 数学模型、主要参数、RC滤波器设计。尽管数字滤波技术已得到广泛应 用,但模拟滤波在自动检测、自动控制以及电子测量仪器中仍被广泛应用。带通滤波器二、滤波器分类 ⒈根据滤波器的选频作用分类 ⑴低通滤波器 从0~f2频率之间,幅频特性平直,它 可以使信号中低于f2的频率成分几乎不受衰 减地通过,而高于f2的频率成分受到极大地 衰减。 ⑵高通滤波器 与低通滤波相反,从频率f1~∞,其幅 频特性平直。它使信号中高于f1的频率成分 几乎不受衰减地通过,而低于f1的频率成分 将受到极大地衰减。 ⑶带通滤波器 它的通频带在f1~f2之间。它使信号中 高于f1而低于f2的频率成分可以不受衰减地 通过,而其它成分受到衰减。 ⑷带阻滤波器 与带通滤波相反,阻带在频率f1~f2之间。它使信号中高于f1而低于f2的频率成分受到衰减,其余频率成分的信号几乎不受衰减地通过。 低通滤波器和高通滤波器是滤波器的两种最基本的形式,其它的滤波器都可以分解为这两种类型的滤波器,例如:低通滤波器与高通滤波器的串联为带通滤波器,低通滤波器与高通滤波器的并联为带阻滤波器。

OPenCV3.2中Mat对象常用函数属性总结

OPenCV3.2中Mat对象常用函数属性总结Mat对象是OpenCV2.0之后引进的图像数据结构,它能自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分。 在使用Mat对象时,有以下四个要点需要注意: 1、输出图像的内存是自动分配的 2、使用OpenCV的C++接口,不需要考虑内存分配问题 3、赋值操作和拷贝构造函数只会复制头部分 4、使用clone与copyTo两个函数实现数据完全复制 下面我们就具体介绍一下公共成员函数和公共属性。 公共成员函数: 1、cv::Mat::Mat ( int rows, int cols, int type ) 参数: rows2D数组中的行数 cols2D数组中的列数。 type数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。

2、cv::Mat::Mat ( Size size, int type ) 参数: size 2D数组大小:Size(cols, rows)。在Size()构造函数中,行数和列数以相反的顺序排列。 type 数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。 3、cv::Mat::Mat ( int rows, int cols, int type, const Scalar & s ) 参数: rows2D数组中的行数。 cols 2D数组中的列数。 type数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。s 初始化每个矩阵元素的可选值。在构建后将所有矩阵元素设置为特定值, 使用赋值运算符Mat::operator=(const Scalar& value) 。 4、cv::Mat::Mat ( Size size, int type,

简单易用的RC低通滤波器设计

低通滤波器 1、电路的组成 所谓的低通滤波器就是允许低频信号通过,而将高频信号衰减的电路,RC低通滤波器电路的组成如图3-17所示。 2、电压放大倍数 在电子技术中,将电路输出电压与输入电压的比定义为电路的电压放大倍数,或称为传递函数,用符号A u来表示,在这里A u为复数,即 令,则 (3-19) 的模和幅角为 (3-20) (3-21)

式3-19称为RC低通电路的频响特性,式3-20称为RC低通电路的幅频特性,式3-21称为RC低通电路的相频特性。在电子电路中,描述电路幅频特性和相频特性的单位通常用对数传输单位分贝。 3、对数传输单位分贝(dB)的定义 在电信号的传输过程中,为了估计线路对信号传输的有效性,经常要计算的值。式中的P0和P i 分别为线路输出端和输入端信号的功率。当多级线路相串联时,总的的值为: 对上式取对数可简化计算,利用对数来描述的,被定义为对数传输单位贝尔(B)。即 (3-22) 贝尔的单位太大了,在实际上通常用贝尔的十分之一为计量单位,称为分贝(dB)。即,1B=10dB。 因为,所以,对于等电阻的一段网络,贝尔也可用输出电压和输入电压的比来定义。即 (3-23) 当电压放大倍数用dB做单位来计量时,常称为增益。根据增益的概念,我们通常将对信号电压的放大作用是100倍的电路,说成电路的增益是40dB,电压放大作用是1000倍的电路,说成电路的增益是60dB,当输出电压小于输入电压时,电路增益的分贝数是负值。例-20dB说明输入信号被电路衰减了10倍。 4.低通滤波器的波特图 利用对数传输单位,可将低通滤波器的幅频特性写成

(3-24) 下面分几种情况来讨论低通滤波的幅频特性: (1)当f等于通带截止频率f P时 当f=f P时,式3-24变成 (3-25) 由上式可得通带截止频率f P的物理意义是:因低通电路的增益随频率的增大而下降,当低通电路的增益下降了3dB时所对应的频率就是通带截止频率f P。若不用增益来表示,也可以说,当电路的放大倍数下降到原来的0.707时所对应的频率。对于低通滤波器,该频率通常又称为上限截止频率,用符号f H来表示。根据f P的定义可得f H的表达式为: (3-26) (2)当f>10f P时 当f>10f P时,式3-24中的项比10大,公式中的1可忽略,式3-24的结果为 (3-27) 3-27式说明频率每增加10倍,增益下降20dB,说明该电路对高频信号有很强的衰减作用,在幅频特性曲线上,3-27式称为-20dB/十倍频线。 (3)当f<0.1f P时 当f<0.1f P时,式3-24中的项比0.1小,可忽略,式3-24的结果为0dB。说明该电路对低频信号没有任何的衰减作用,低频信号可以很顺利的通过该电路,所以该电路称为低通滤波器。 根据上面讨论的结果所画的幅频特性曲线称为波特图,RC低通滤波器的波特图如图3-18所示。

简单二阶有源低通滤波器电路及幅频特性

简单二阶有源低通滤波器电路及幅频特性 为了使输出电压在高频段以更快的速率下降,以改善滤波效果,再加一节RC o (1)通带增益 当f=0时,各电容器可视为开路,通带内的增益为 低通滤波环节,称为二阶有源滤波电路。它比一阶低通滤波器的滤波效果更好二阶LPF的电路图如图6所示,幅频特性曲线如图7所示。 1- (2)二阶低通有源滤波器传递函数根据图8-2.06可以写出

丄“盘斗丄〕 俯二一礎 通常有,联立求解以上三式,可得滤波器的传递函数 臥)—九… (3)通带截止频率 将s 换成j 3,令3 0 = 2n f o=1/(RC)可得 当f=fp时,上式分母的模 ="丿厶 I Vo Z 与理想的二阶波特图相比,在超过fO以后,幅频特性以-40 dB/dec的速率下降,比一阶的下降快。但在通带截止频率fp -fO之间幅频特性下降的还不够快。 摘要设计一种压控电压源型二阶有源低通滤波电路,并利用MultisimIO仿真软件对电路的频率特性、特征参量等进行了仿真分析,仿真结果与理论设计一致,为有源滤波器的电路设计提供了EDA手段和依据。 关键词二阶有源低通滤波器;电路设计自动化;仿真分析;MultisimIO 滤波器是一种使用信号通过而同时抑制无用频率信号的电子装置,在信息处理、数据传送和抑制干扰等自动控制、通信及其它电子系统中应用广泛。滤波一般可分为有源滤波和无源滤波,有源滤波可以使幅频特性比较陡峭,而无源滤波设计简单易行,但幅频特性不如有源滤波器,而且体积较大。从滤波器阶数可分为一阶和高阶,阶数越高,幅频特性越陡峭。高阶滤波器通常可由一阶和二阶滤波器级联而成。采用集成运放构成的RC有源滤波器具有输入阻抗高,输出阻抗低,可提供一定增益,截止频率可调等特点。压控电压源型二阶低通滤波电路是有源滤波电路的重要一种,适合作为多级放大器的级联。本文根据实际要求设计一种压控电压源型二阶有源低通滤波电路,采用EDA仿真软件Multisim1O对压控电压源型二阶有源低通滤波电路进行仿真分析、调试,从而实现电路的优化设计。 1设计分析 1.1二阶有源滤波器的典型结构 二阶有源滤波器的典型结构如图1所示。其中,丫1?丫5为导纳,考虑到UP=UN

快速学习OPENCV常用函数

访问图像元素如下: 1、针对各种图像(包括4-通道)和矩阵的函数(cvGet2D,cvSet2D),但是它们都很慢. (img->origin=IPL_ORIGIN_TL)或者是左下角(img->origin=IPL_ORIGIN_BL) 假设有8-bit1-通道的图像I(IplImage*img): I(x,y)~((uchar*)(img->imageData+img->widthStep*y))[x] 假设有8-bit3-通道的图像I(IplImage*img): I(x,y)blue~((uchar*)(img->imageData+img->widthStep*y))[x*3] I(x,y)green~((uchar*)(img->imageData+img->widthStep*y))[x*3+1] I(x,y)red~((uchar*)(img->imageData+img->widthStep*y))[x*3+2] 如果增加点(100,100)的亮度30,那么可以: CvPoint pt={100,100}; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3]+=30; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3+1]+=30; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3+2]+=30; CvPoint pt={100,100}; uchar*temp_ptr=&((uchar*)(img->imageData+ img->widthStep*pt.y))[x*3]; temp_ptr[0]+=30; temp_ptr[1]+=30; temp_ptr[2]+=30; 假设有32-bit浮点数,1-通道图像I(IplImage*img): I(x,y)~((float*)(img->imageData+img->widthStep*y))[x] 现在,通用方法:假设有N-通道,类型为T的图像: I(x,y)c~((T*)(img->imageData+img->widthStep*y))[x*N+c] 或者你可使用宏CV_IMAGE_ELEM(image_header,elemtype,y,x_Nc) I(x,y)c~CV_IMAGE_ELEM(img,T,y,x*N+c) 2、访问矩阵元素 设有32-bit浮点数的实数矩阵M(CvMat*mat): M(i,j)~((float*)(mat->data.ptr+mat->step*i))[j] 设有64-bit浮点数的复数矩阵M(CvMat*mat): Re M(i,j)~((double*)(mat->data.ptr+mat->step*i))[j*2] Im M(i,j)~((double*)(mat->data.ptr+mat->step*i))[j*2+1]

低通滤波器设计实验报告

低通滤波器设计 一、设计目的 1、学习对二阶有源RC 滤波器电路的设计与分析; 2、练习使用软件ORCAD (PISPICE )绘制滤波电路; 3、掌握在ORCAD (PISPICE )中仿真观察滤波电路的幅频特性与相频特性曲线 。 二、设计指标 1、设计低通滤波器截止频率为W=2*10^5rad/s; 2、品质因数Q=1/2; 三、设计步骤 1、考虑到原件分散性对整个电路灵敏度的影响,我们选择R1=R2=R,C1=C2=C ,来减少原件分散性带来的问题; 2、考虑到电容种类比较少,我们先选择电容的值,选择电容C=1nF; 3、由给定的Wp 值,求出R 12121C C R R Wp ==RC 1=2*10^5 解得:R=5K ? 4、根据给定的Q ,求解K Q=2121C C R R /K)RC -(1+r2)C1+(R1= K -31 解得:K=3-Q 1=1.286 5、根据求出K 值,确定Ra 与Rb 的值

Ra=2 K=1+ Rb Ra=Rb 这里取Ra=Rb=10K?; 四、电路仿真 1、电路仿真图: 2、低通滤波器幅频特性曲线 3、低通滤波器相频特性曲线 注:改变电容的值:当C1=C2=C=10nF时 低通滤波器幅频特性曲线 低通滤波器相频特性曲线 五、参数分析 1、从幅频特性图看出:该低通滤波器的截止频率大约33KHz, 而我们指标要求设计截止频率 f= Wp/2?=31.847KHz 存在明显误差; 2、从幅频特性曲线看出,在截至频率附近出现凸起情况,这是二阶滤波器所特有的特性; 3、从相频特性曲线看出,该低通滤波器的相频特性相比比较好。 4、改变电容电阻的值,发现幅频特性曲线稍有不同,因此,我们在设计高精度低误差的滤波器时一定要注意原件参数的选择。 六、设计心得: 通过对给定参数指标的地滤波器的仿真设计,一方面学会了在

四种滤波器的幅频特性

四种滤波器的幅频特性 本次实验是观察四种滤波器(低通、高通、带宽、带阻)的幅频特性,以加强对各种滤波器的功能认知。本 次实验我们选用的放大器为324型,其功能图如下所示: 下面我们来逐步观察一下四种滤波器的特性。 1. 低通滤波器 其电路图如下所示: 图中,电阻R1=R2=R=10K Ω,C1=C2=0.01uF,Ro=0.8R=8Ω,Vcc+=+12V , Vcc-=-12V ,低通滤波器的传递函数20 02 2 )(ω αωω++= s s K s H p , ,其中 2 221102 12100 1111; 1;1C R K R R C C C R R R R K K f f p -+???? ??+= = + ==αωω带入数据w 。=10000rad/s ,Kp =1.8,α=1.2, ()( ) 2 2 2202 2 25/2425/78.1)(ωωω ωω+-= j H ; 当w =0时)(ωj H =1.8,;w 增加且w<4800rad/s 时,)(ωj H 增加;当>4800rad/s 时,)(ωj H 减小,;w 趋 近无穷时, )(ωj H 趋近于0。此时wc=1.17rad/s 。 对于不同的α,滤波器的幅频特性也不相同 对于实验中的低通,α=1.2,与1.25的相似,我们对于实验数据的测量如下: 输入为100mV

范围10~6kHz 输出不失真 绘出的幅频特性图如下: 2、高通滤波器 其电路图如下: 其中R1=R2=R=10K,C1=C2=0.01uF,Ro=0.8R=8K 高通的传递函数为20 02 2 )(ω αω++= s s s K s H p ,()() 2 220 2 2 )(ωαωω ω ωω+-= p K j H , 1121 2 021******** ; 1 ; 1C R K C C R C C R R R R K K f f p -+???? ??+= = +==αωω带入数值 后,Kp =1.8, W=0时 )(ωj H =0;w<4800rad/s 时)(ωj H 增加;w 趋近于无穷时,)(ωj H 保持不变。 对于不同的α,滤波器的幅频特性也不相同 绘制的幅频特性图如下: 3带通滤波器 其电路图如下所示: 其中R1=R2=R3=R=10K,C1=C2=0.01uF ,Ro=8K , 带通的传递函数为 2 02 0)/()/()(ω ωω++= s Q s s Q K s H p ,()H j ω; ()1 223131102 13212 101 213 1211111; ; 111C R K C R C R C R Q C C R R R R R R R K R R C C K K f f f p -+++=+= ??????-+???? ??++=-ωω

OpenCV最基础的图像处理的例子

?什么是OpenCV ?开源C/C++计算机视觉库. ?面向实时应用进行优化. ?跨操作系统/硬件/窗口管理器. ?通用图像/视频载入、存储和获取. ?由中、高层API构成. ?为Intel?公司的Integrated Performance Primitives (IPP) 提供了透明接口. ?特性: ?图像数据操作(分配,释放, 复制, 设定, 转换). ?图像与视频I/O (基于文件/摄像头输入, 图像/视频文件输出). ?矩阵与向量操作与线性代数计算(相乘, 求解, 特征值, 奇异值分解SVD). ?各种动态数据结构(列表, 队列, 集, 树, 图). ?基本图像处理(滤波, 边缘检测, 角点检测, 采样与插值, 色彩转换, 形态操作, 直方图, 图像金字塔). ?结构分析(连接成分, 轮廓处理, 距离转换, 模板匹配, Hough转换, 多边形近似, 线性拟合, 椭圆拟合, Delaunay三角化). ?摄像头标定 (寻找并跟踪标定模板, 标定, 基础矩阵估计, homography估计, 立体匹配). ?动作分析(光流, 动作分割, 跟踪). ?对象辨识 (特征方法, 隐马可夫链模型HMM). ?基本GUI(显示图像/视频, 键盘鼠标操作, 滚动条). ?图像标识 (直线, 圆锥, 多边形, 文本绘图) ?OpenCV 模块: ?cv - OpenCV 主要函数. ?cvaux - 辅助(实验性) OpenCV 函数. ?cxcore - 数据结构与线性代数算法. ?highgui - GUI函数. 资料链接 ?参考手册: ?/docs/index.htm ?网络资源: ?官方网页: https://www.doczj.com/doc/687689453.html,/technology/computing/opencv/?软件下载: https://www.doczj.com/doc/687689453.html,/projects/opencvlibrary/ ?书籍: ?Open Source Computer Vision Library by Gary R. Bradski, Vadim Pisarevsky, and Jean-Yves Bouguet, Springer, 1st ed. (June, 2006). ?视频处理例程(位于/samples/c/目录中): ?色彩跟踪: camshiftdemo ?点跟踪: lkdemo

滤波器主要参数与特性指标(优.选)

滤波器的主要参数(Definitions): 中心频率(Center Frequency):滤波器通带的频率f0,一般取f0=(f1+f2)/2,f1、f2为带通或带阻滤波器左、右相对下降1dB或3dB边频点。窄带滤波器常以插损最小点为中心频率计算通带带宽。 截止频率(Cutoff Frequency):指低通滤波器的通带右边频点及高通滤波器的通带左边频点。通常以1dB或3dB相对损耗点来标准定义。相对损耗的参考基准为:低通以DC处插损为基准,高通则以未出现寄生阻带的足够高通带频率处插损为基准。 通带带宽(BWxdB):指需要通过的频谱宽度,BWxdB=(f2-f1)。f1、f2为以中心频率f0处插入损耗为基准,下降X(dB)处对应的左、右边频点。通常用X=3、1、0.5 即BW3dB、BW1dB、BW0.5dB 表征滤波器通带带宽参数。分数带宽(fractional bandwidth)=BW3dB/f0×100[%],也常用来表征滤波器通带带宽。 插入损耗(Insertion Loss):由于滤波器的引入对电路中原有信号带来的衰耗,以中心或截止频率处损耗表征,如要求全带内插损需强调。 纹波(Ripple):指1dB或3dB带宽(截止频率)范围内,插损随频率在损耗均值曲线基础上波动的峰-峰值。 带内波动(Passband Riplpe):通带内插入损耗随频率的变化量。1dB带宽内的带内波动是1dB。 带内驻波比(VSWR):衡量滤波器通带内信号是否良好匹配传输的一项重要指标。理想匹配VSWR=1:1,失配时VSWR<1。对于一个实际的滤波器而言,满足VSWR<1 BWdBBWdBdiv> 在入射波和反射波相位相同的地方,电压振幅相加为最大电压振幅Vmax ,形成波腹;在入射波和反射波相位相反的地方电压振幅相减为最小电压振幅Vmin ,形成波节。其它各点的振幅值则介于波腹与波节之间。这种合成波称为行驻波。驻波比是驻波波腹处的电压幅值Vmax与波节处的电压幅值Vmin之比。 回波损耗(Return Loss):端口信号输入功率与反射功率之比的分贝(dB)数,也等于|20Log10ρ|,ρ为电压反射系数。输入功率被端口全部吸收时回波损耗为无穷大。 回波损耗,又称为反射损耗。是电缆链路由于阻抗不匹配所产生的反射,是一对线自身的反射。 从数学角度看,回波损耗为-10 lg [(反射功率)/(入射功率)]。 回波损耗愈大愈好,以减少反射光对光源和系统的影响。 阻带抑制度:衡量滤波器选择性能好坏的重要指标。该指标越高说明对带外干扰信号抑制的越好。通常有两种提法:一种为要求对某一给定带外频率fs抑制多少dB,计算方法为fs处衰减量As-IL;另一种为提出表征滤波器幅频响应与理想矩形接近程度的指标——矩形系数(KxdB<1),KxdB=BWxdB/BW3dB,(X可为40dB、30dB、20dB等)。滤波器阶数越多矩形度越高——即K越接近理想值1,制作难度当然也就越大。 延迟(Td):指信号通过滤波器所需要的时间,数值上为传输相位函数对角频率的导数,即

相关主题
文本预览
相关文档 最新文档