- 博客(41)
- 资源 (3)
- 收藏
- 关注

原创 [数字图像处理]频域滤波(1)--基础与低通滤波器
之前的博文主要介绍了空间域内的滤波器,本文主要从频域的角度进行分析。主要使用傅里叶变换,将空间域的图像转换到频域内,在频域内进行数字图像处理。这部分的内容及其重要,频域内的处理可以解决空间域内无法完成的图像增强。本文首先从数学角度,对图像的频域内的性质进行分析,然后在着重介绍滤波器在频域内的性质。 1.傅里叶变换与频域 在之前的文中,我们已经进行过一些基本的图像
2013-12-08 12:42:43
51667
7

原创 [数字图像处理]数字图像的有理数倍缩放(缩小与放大)
1.序言 根据上两节的内容,我们已经实现了整数倍的扩大与缩小。链接给在下面,有需要的就点吧。 [数字图像处理]数字图像的整数倍扩大(数字图像插值) [数字图像处理]数字图像的整数倍缩小 事实上,在缩小与放大图像的时候,很多时候需要非整数倍的变换,整数倍变换是很特殊的情况。在实现了整数倍的扩大与整数倍的缩小之后,就可以实现有理数倍
2013-11-17 17:28:25
9420

原创 [数字图像处理]灰度变换——直方图处理
直方图均衡 一副图像的直方图,表示了其灰度分布的特性。对于数字图像来说,假设灰度值k出现了次,那么其概率密度函数如下所示。这个式子,表示了像素的灰度值为k概率。其中,M与N为图像的尺寸。 对于一幅动态范围较窄的图像,其归一化灰度直方图如下所示。 对于此类图像,使用灰度拉伸,也能使其的动态范围得到改善,增强图像对比度。但是,灰度拉
2013-10-20 15:47:34
18199
10
原创 [openCV]Mac平台下openCV的搭建(Xcode + openCV 2.4.10)
1.序言从今天开始,开始使用Mac来跑openCV了。开始感觉其实应该开发阻力不是太大样子,事实上来讲,其实比Windows要繁琐一些呢。现时点的配置为os x yosemite 10.10.3openCV 2.4.10(现时点的最新版本为:3.0 RC1)Xcode Version 6.3.2 (6D2105)在这个配置下,我按照如下步骤搭建了我的openCV平台。
2015-05-25 13:52:57
11464
原创 [openCV]基于Mouse Event的Paint的实现
1.关于Mouse Event本文可能与图像处理不是有太大的关联,是openCV的HighGUI中关于Mouse Event的一些学习与练习,可能更偏向于编程吧。之前的程序中,也常常会使用cvWaitKey()去等待键盘的动作。与之相同的,Mouse Event也算是一个很典型的Callback机制了,对于Mouse Event的设置openCV中需要调用以下函数去实现。
2015-05-21 13:12:08
2689
原创 [openCV]图像的傅里叶频谱
1.图像的傅里叶频谱的意义之前的博文其实已经归纳过这方面的内容了。我们常用的图像平滑处理,其实就是一个低通滤波,一定程度上去除高频信号,可以使得图像变得柔和(也就是平滑)。但是,在去除周期性噪声时候,空间域内的滤波(卷积)就不是那么好操作了。所以,这里时候,无论是理解起来方便,还是其他原因,都需要在频域内进行滤波。
2015-05-21 10:30:12
13983
原创 [openCV]视频的读入与一些简单的图像处理
1.序言作为一个计算机图像处理的工具,因为免费公开呀,版权等等的原因,openCV开始展现出一些无可取代的优势(已经展露好久了好吧)。嘛,之前我研究生阶段,一直再用MATLAB在干活,总感觉调试呀,验证啊,还是MATLAB要好用一些呢!不久前,自己也开始接触了openCV,总感觉虽然都是工具,但是水很深的样子。嘛,总是还是开个关于openCV的坑,记录下自己的学习的轨迹吧。
2015-05-21 10:05:14
5245
原创 [openCV]直方图均衡
图像的直方图图像的直方图,代表了图像的灰度值的分布状况。从直方图上,我们可以很明确的知道,图像的偏暗程度和饱和程度。如果一幅数字图像中,假设作为水平轴的灰度值rkr_k出现了nkn_k次,那么对应于垂直轴的归一化后的函数如下所示。
2015-05-20 11:04:07
1998
原创 [数字图像处理]图像复原--逆滤波
1.逆滤波的问题点 图像的老化,可以视为以下这样的一个过程。一个是退化函数的影响(致使图片模糊,褪色等),一个可加性噪声的影响。用算式表示为 前几篇博文,主要是介绍可加性噪声的去除。本博文,主要介绍图像的逆滤波,即退化函数的去除。然而,逆滤波在空间域内的处理是很不方便的。 简单的来考虑,加法的逆运算是减法,乘法的逆运算的除法,微分的逆运算
2014-07-23 20:05:15
46869
原创 [数字图像处理]图像去噪初步(2)--非线性滤波器
1.非线性处理与线性处理的区别。 上一篇博文的内容,是关于均值滤波器的。比如说像算术均值滤波器,几何均值滤波器。这以类型的滤波器的常常被用于剔除某些不需要的频率成分,或者选择需要的频率成分,从而达到去噪的目的。这样的滤波器,被称为线性滤波器。 然而,还有一些特殊滤波器,他们被称为非线性滤波器。其代表为中央值滤波器。所谓中央值滤波器,就是将一定范围内的数据(对于图像而言,是像素的
2014-07-17 19:04:50
10607
1
原创 [数字图像处理]图像去噪初步(1)--均值滤波器
1.图像去噪的前言 上一篇博文中,我对噪声的类型进行了介绍,也使用的Matlab对各种噪声进行了实现。旧话重提,一幅图像,甚至是一个信号的老化,可以使用以下模型来表示。可以使用以下算式来表示这里,由于退化函数的作用,使得原图像产生退化(比如,运动模糊),然后在加上一个加性噪声项。 本博文,主要对去除加性噪声的滤波器的性能进行了比较。对于退化函数的
2014-07-11 20:27:44
33138
2
原创 [数字图像处理]常见噪声的分类与Matlab实现
1.研究噪声特性的必要性 本文的内容主要介绍了常见噪声的分类与其特性。将噪声建模,然后用模型去实现各式各样的噪声。 实际生活中的各种照片的老化,都可以归结为以下老化模型。 这个模型很简单,也可以直接用以下公式来表达。在频域内,用以下公式区表示。 根据以上式子,可以看出,老旧照片的复原,主要分为两个任务,一个是去
2014-07-11 16:45:12
51727
4
原创 [数字图像处理]简单的几何学图像变换与图像配准
1.图像的几何学变换 之前的博文里,我简单的介绍了图像的放大与缩小。放大与缩小也算是图像的几何学变换,本文介绍了其他的几何学变换,包括旋转、水平倾斜和垂直倾斜(当然,还有水平移动与垂直移动。这些变换很简单,不需要插值,所以这里就不着重介绍了)。 假设输入图像为G(u,v),其变换后的图像为F(x,y)。其变化的方法,如下所示。 图像的几何学变
2013-12-08 21:25:26
7636
2
原创 [数字图像处理]频域滤波(2)--高通滤波器,带阻滤波器与陷波滤波器
1.高通滤波器 首先,对一副图像进行如下二维傅里叶变换。我们将u=0和v=0带上式,我们可以得到如下式子。根据上式,可以到F(0,0)的值是非常大的。这里,我们将F(0,0)称为直流分量,直流分量比其他的成分要大好几个数量级。所以,这也就是傅里叶谱为什么需要使用对数变换才能看清楚的原因。 这里,对于高通滤波器而言,由于直流分量被衰减,所以,所
2013-12-08 18:02:49
38344
8
原创 [数字图像处理]数字图像的整数倍缩小
1.理想的缩小法 与数字图像的整数倍扩大法一样,先在理想的情况下,研究理想的缩小法。以此作为目标,对简单的缩小法的效果进行分析。所以,还是与扩大法一个思路,首先,做出两个信号。 信号①:选择采样时间,得到如下信号,左边为信号①在时间域的表现形式,右边为信号①的振幅谱。 信号②:选择采样时间,可得到如下信号,左边为信号②在时间域的表现
2013-11-17 16:04:33
5813
原创 [数字图像处理]数字图像的整数倍扩大(数字图像插值)
1.序言 在不同的平台下,或者从不同仪器获得图像(或者数据),其大小与数据类型,都有着很大的不同。这里的大小,就是指的是分辨率。数字图像,其实是像素的集中表现形式,像素越多越密集,图像则可以表现得越精确的。我们将数字图像的像素数,称为分辨率。 本文主要介绍了数字图像的整数倍扩大(也就是分辨率的变化)。事实上,扩大处理可以归结为,新的像素值的如何决定的插值问题。首先,
2013-11-17 14:59:52
7801
原创 [数字图像处理]模糊算法用于图像增强
模糊集合原理 在计算机编程的时候,常常会使用一种“干脆的”集合。在判断某件事,或者某个变量的时候,常常使用的是布尔值(因为某件事,不是真就是假)。通过一个阈值,去判断这件事,而这样的一个阈值的设定,会产生一个问题。还是使用《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods书中的例子,看以下两个图。
2013-10-29 13:07:29
18190
原创 [数字图像处理]空间滤波
空间滤波,就是直接在灰度值上,做一些滤波操作。滤波一词,其实来源于频域。而这里的空间滤波,则是在空间上进行类似于滤波的操作。这里空间滤波的操作,也是利用卷积来完成的,当然,空间滤波器与频域滤波器是有一定关联的,我在逐个讲滤波器的时候,也会穿插上滤波器的频域表现来进行说明。 空间滤波所使用的运算是卷积,其计算如下所示。在执行空间滤波的时候,我们都会使用到这个操作。
2013-10-20 17:28:04
25649
3
原创 [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
灰度变换,属于一个非常重要的概念。这里主要参考《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods 的第三章。书中所有的实验与数学式都采用了8-bit 图像的灰度范围,也就是0到255这样一个范围,这是本书不合理的一个地方。首先,这样做并不泛用,图片不一定是8-bit的。其次,在做某些变换的时候,可能会导致溢出。比如,伽马
2013-10-14 16:54:39
40095
1
原创 [数字图像处理]开坑序言
作为数字图像处理的基础学习,我用的教材是《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods 和《画像処理工学―基礎編 [単行本]》谷口 慶治 。这两本教材作为基础的入门是够了。
2013-10-14 14:57:56
3956
原创 [数字信号处理]IIR滤波器的直接设计(C代码)
1.IIR滤波器的直接设计原理 不利用模拟滤波器,直接进行数字滤波器的设计的方法,称为直接设计。回忆之前所说的IIR滤波器的直接设计,我们首先设计了巴特沃斯模拟滤波器,然后进行双线性变换,得到数字滤波器。我所使用的是巴特沃斯低通滤波器作为原型滤波器,其振幅特性如下所示。 首先,我们先把数字滤波器的指标,根据下式转为模拟滤波器的
2013-06-11 18:18:57
30959
59
原创 [数字信号处理]IIR滤波器的间接设计(C代码)
1.模拟滤波器的设计 1.1巴特沃斯滤波器的次数 根据给定的参数设计模拟滤波器,然后进行变数变换,求取数字滤波器的方法,称为滤波器的间接设计。做为数字滤波器的设计基础的模拟滤波器,称之为原型滤波器。这里,我们首先介绍的是最简单最基础的原型滤波器,巴特沃斯低通滤波器。由于IIR滤波器不具有线性相位特性,因此不必考虑相位特性,直接考虑其振幅特性。
2013-06-10 12:46:10
25347
56
原创 定点计算与浮点计算
1.定点计算的必要性 定点计算,简单来说,就是把小数转换为整数的一种计算。这个定点计算的点,就是小数点。从字面意思上说来,就是小数点固定的运算。在详细一点就是,对于整数来说,将假定的小数点固定在某个位置,将整数视为小数。一般来讲,小数点定在哪都无所谓的,决定了之后,那么这个小数点就固定在某一位了(所以叫做定点运算)。简单来说,就是把小数的计算,转换为整数的计算。那么,为什么要如此
2013-06-06 13:56:01
23918
1
原创 [数字信号处理]IIR滤波器基础
1.IIR滤波器构造 之前在介绍FIR滤波器的时候,我们提到过,IIR滤波器的单位冲击响应是无限的!用差分方程来表达一个滤波器,应该是下式这个样子的。 这个式子是N次差分方程的表达式。我们明显可以看出,计算输出y(n)的时候,需要以前的输出值与输入值。换言之,这个可能表达式还有反馈环节。当为0的时候,这个滤波器由于没有反馈,其单位冲击
2013-06-05 22:28:16
22126
4
原创 [数字信号处理]相位特性解卷绕
1.什么是解卷绕?为什么要解卷绕? 对于FIR滤波器的系数,也就是FIR滤波器的单位冲击响应,做离散时间的傅里叶变换。比如,像下面这样。所得到的结果是这个FIR滤波器的频率响应。然而,频率响应又表示为振幅特性和相位特性,就像这样所以,振幅特性和相位特性就按下式可以计算出来。 既然如此,我们就把一个系统的相位特性作图,看看得到的是
2013-06-02 18:19:42
13435
8
原创 [数字信号处理]单位冲击响应与频响以及FIR实现代码(C语言)
1.单位冲击响应与频响 就如同之前所说的一样,使用下图所示的单位冲击响应,所设计的滤波器,是无法实现的。 现在,让我们看看其这个滤波器的频响。所谓频响,就是计算其单位冲击响应的离散时间傅里叶变换, 我们可以看出,这个滤波器的频响的计算结果是实数,并没有虚数部分。也就是,其相位谱一直是0,也就意味着,这个滤波器输入与输出之间没有延
2013-05-29 13:01:47
20763
2
原创 [数字信号处理]使用窗函数设计FIR滤波器
1.设计参数 首先,先明白几个概念。通带,阻带,过渡带,通带纹波和阻带纹波分别是什么?看下图, 范围称为通带,对于允许误差而言,这个范围,称为通带纹波。同样的,对于范围则是阻带,这个范围,称为阻带纹波。中间的黑色部分是过度带。角频率称为通带边缘频率,角频率则被称为阻带起始频率。 通常的滤波器的设计,都会指明这几个参数,最后设计的滤波器,必须满足
2013-05-24 14:25:02
54044
24
原创 [数字信号处理] FIR滤波器基础
对于一个滤波器而言,其单位冲击响应是有限区间的数列的话,这个滤波器是FIR滤波器。反之,其单位冲击响应是无限区间的数列的话,这个滤波器是IIR滤波器。 下面使用线性差分方程式,在时域内,解释一下FIR与IIR数字滤波器。使用单位脉冲响应和其输入信号进行卷积运算,可得到下式 将其改写为递归的方式,则 上式是1次差分方程式,而对于N次数字滤波器的
2013-05-23 17:36:32
12824
原创 [数字信号处理]序言
自从大三申请该博客以来,就没有稳定的更新过,多数情况下,只是心血来潮就更新两篇。现在已经两年了!今天心血来潮看了下博客,居然有上千的访问量了,深深的感到欣慰,看看大学的自己做的事,做的东西,也是很有趣的事呢!之前忙着研究生考试。现在终于是考上了,之后的研究的课题可能是数字图像处理,所以,现在把自己的学习过程放上来,也算是记录自己的轨迹吧! 博客地址:http://blog.csdn
2013-05-23 16:57:34
2962
原创 XS128超声波程序
程序有2个。。一个是自己搭的,一个是买的模块。自己搭的测距能到1.6M,模块能到4M。 模块程序 void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1){ //PL
2011-08-28 15:25:01
3356
原创 SD卡驱动(基于XS128)
<br />之前一直在做SD卡,一开始是基于8366的,但后面为了给同学方便,直接做成XS的了。现在可以进行SD卡的读写,TXT的创建与BMP的创建。<br />下面是SD卡的驱动程序(基于XS128)。<br /> <br />#include "SD_Card.h" <br />#define SD_CS PTM_PTM3 <br />//PLL初始化<br />void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)<br />{
2011-04-17 17:52:00
3985
1
原创 SD卡FAT32文件结构(2)---创建与写入BMP位图
下图为本人512MB诺基亚SD卡根目录的数据, 1(红色处):卷标,也就是名称,我的SD卡名称为WHETA。 2(蓝色处):文件名。 3(紫色处):文件类型。 从蓝色与紫色处,可以看出我的根目录里就一个东西,一张名为TESTV12的BMP位图。 4(褐色处(2个)): 这个是文件开始的簇,注意格式,按照图来,读取的数值为0x0000 0300,但真实表示的数值为0x0000 0003。也就是从第三簇开始的。 然后,我们参照FAT表,找出BMP位图的所存储
2011-04-13 20:08:00
6056
原创 SD卡FAT32文件结构(1)
FAT32文件层,这个文件层体系不是十分的复杂。但为了寻找一个根目录的文件,得几经周折,所写的程序也非常的庞大。 首先,我们为了知道我们的SD卡的基本信息,这些信息一般被存储在BPB表中,而BPB表位于DBR中,也就是逻辑扇区0号。但逻辑0扇区并不在0号扇区之中,使用WinHex,看0扇区,结果如下所示。 0x0190之前的区域全是0,省略掉了。从图中看出,这必定不是DBR,而是主引导扇。图中红圈的地方,标示出了DBR所在的位置,红圈的位置是MBR的0x01C6~0x01C9。而从
2011-04-10 02:39:00
9466
原创 .初学56F8366之SD卡读写(基于SPI模式)(2)
对于SD卡的初始化的时候,尽量要保持低速,尽量小于375K。而初始化的一般的步骤为先发送74个时钟,然后发送CMD0命令,等SD卡返回0x01信息之后,发送APP类命令ACMD41可初始化SD卡,所谓的APP类命令ACMD41,其实就是CMD55+ACMD41,。如果是MMC卡,则可以发送CMD1命令,等待返回0x01,即可。之前对于8366的SPI接口初始化过,这里不再赘述。这里要说的发送命令函数。SD卡的命令为48位的,其格式如下:开始的两位和最后一位变。开始的前8位去掉前2两位,剩下6位,表示了SD卡
2011-04-10 01:36:00
2944
原创 初学56F8366之SD卡读写(基于SPI模式)
<br />8366片内资源非常丰富,有两路SPI。其实之前一用过的一些单片机也有SPI接口,也调过一些所谓的SPI总线结构的IC,但那个时候都是用IO进行模拟的。比如,周立功的矩阵键盘管理芯片ZLG7289,这个有三个端口,SS、CLK、DIO,其IO口是双向的。这个我目前不知道如何处理,用SPI资源,只是用模拟IO口用着。再比如,U盘读写芯片CH375,这个当时是用SPCE061A调的,SPCE061A是没有SPI口的,然后还是比较偏的单片机,库什么的都没。<br /> SD卡是一个非常典型
2011-04-10 01:35:00
2786
原创 初学56F8366之芯片解锁
<br />我就很郁闷了,真的很郁闷。之前一直调SD卡来着,然后就忽然锁定了。然后debug时候有如下提示。<br /> failed to erase flash,即不能擦除FLASH。<br /> unable to debug.FLASH security is enable。不能DEBUG,FLASH被锁定。<br /> <br /> <br /> 其实之前一直在使用飞思卡尔系列的芯片,XS128同样的也锁过,同样也锁的莫名其妙的。<br /> 无奈之下只能去官方网站上寻找解
2011-04-10 01:34:00
3524
原创 初学56F8366之GPIO口操作
<br />到板子之后两天,终于可以下载程序了。<br /> 首先的学习我就从IO口操作看起了,看了一些LQ的例程。这个IO口的操作和单片机的IO口操作不同,因为头文件不健全,目前只能使用汇编去访问寄存器。<br /> asm(bfclr #0x7FF,X:GPIO_A_PER); <br /> asm(bfset #0x7FF,X:GPIO_A_DDR);<br /> 目前只能通过以上方式去访问寄存器。asm(),为标示括号内为汇编内容。而格式为#<表达式>表示为
2011-04-10 01:33:00
1976
原创 MC56F8366 DSC并口卡配置详尽步骤
<br /> 前几天买了个飞思卡尔的DSC,从LQ处买的。但到货后程序无论如何都下载不了,还是只能自己看PDF与谷歌。(话说谷歌还真好用,不像某渣度,全是广告)。<br /> 由于资料搜索困难,就由我把自己如何配置并口卡、如何配置CCS与debug时候需要注意的要点来进行详细的说明。<br /> 1,配置串口卡。<br /> 注意,仅有ExpressCard卡插槽的笔记本可以使用。插入之后,安装驱动。我是XP系统,驱动的准确位置为 OXPCIe952/OXPCIe952/W
2011-04-10 01:32:00
2982
原创 JAVA写串口程序
JAVA提供的串口操作的包(javax,comm),可以用于PC的串口一般操作,其包内的方法基本有如下几个addPortName(String, int, CommDriver) 添加端口名到端口列表里addPortOwnershipListener(CommPortOwnershipListener) 添加端口拥有的兼听器 removePortOwnershipListener(CommPortOwnershipListener) 移除端口拥有的兼听器 getCurrentOwner() 得到当前占有端
2011-04-10 01:23:00
2636
原创 MFRC500的驱动程序
近几天来,一直在看MFRC500的PDF。感觉要真的写好这个程序是很难,毕竟需要注意的地方太多了。之后参考了飞利浦的程序,还有imzhangx的程序(原帖地址http://imzhangxp.blog.163.com/blog/static/9460190620095311846396/),甚至参考复旦微电子的FM1702。看了不少51程序之后,我基本完成了程序这一块,只是写完了,但还没有进行调试,毕竟现在PC版版子还在做,等硬件下来才能知道结果。 不管什么芯片,若需要对其进行读写,那么
2011-04-10 01:22:00
4875
直接法设计IIR低通滤波器
2013-06-13
间接法设计IIR滤波器
2013-06-13
窗函数法设计FIR滤波器
2013-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人