
图像处理
关于学习图像处理的点滴记录
聚沙塔
这个作者很懒,什么都没留下…
展开
-
matlab实现算术编解码
利用Matlabshi x aclc,clear all;symbol=['abc']; pr=[0.4 0.4 0.2]; %各字符出现的概率temp=[0.0 0.4 0.8 1.0];orignal=temp;in=input('input a string of abc:');n=length(in);%编码for i=1:n wid原创 2014-06-01 23:01:24 · 12382 阅读 · 0 评论 -
Matlab实现Butterworth滤波器
下面是用Matlab实现的Butterworth高通、低通滤波器。clc;clear all;close all;I=imread('cameraman.tif');subplot(3,2,1);imshow(I);title('原始图');f=double(I); % 数据类型转换,MATLAB不支持图像的无符号整型的计算g=fft2(f); % 傅立叶变换原创 2014-06-02 00:05:30 · 24417 阅读 · 0 评论 -
Matlab实现图像分割
下面使用极小值点阈值选取方法,编写MATLAB程序实现图像分割的功能。极小值点阈值选取法即从原图像的直方图的包络线中选取出极小值点,并以极小值点为阈值将图像转为二值图像clear all;close all ;G=imread('rabbit.png');figure();subplot(2,2,1);imshow(G);subplot(2,2,2);imhist(G原创 2014-06-14 21:31:20 · 24907 阅读 · 10 评论 -
Matlab实现Hough变换检测图像中的直线
Hough变换的原理:将图像从图像空间变换至参数空间,变换公式如下:变换以后,图像空间与参数空间存在以下关系:图像空间中的一点在参数空间是一条曲线,而图像空间共线的各点对应于参数空间交于一点的各条曲线。下面使用Matlab实现Hough变换对图像中的直线划痕进行检测。close all;clear all;I = imread('scratch.tif');figu原创 2014-06-14 22:07:06 · 43473 阅读 · 1 评论 -
Tenengrad评价函数
Tenegrad函数式一种常用的图像清晰度评价函数,是一种基于梯度的函数。在图像处理中,一般认为对焦好的图像具有更尖锐的边缘,故具有更大的梯度函数值。Tenegrad函数使用Sobel算子提取水平和垂直方向的梯度值。具体过程如下:设Sobel卷积核为,,则图像在点处的梯度定义该图像的Tenegrad值为其中为图像中像素总数。实现代码如下:#inclu原创 2014-11-12 20:46:14 · 10603 阅读 · 0 评论 -
Retinex系列之Frankle-McCann Retinex
一、Frankle-McCann RetinexFrankle-McCann算法选择一条螺旋结构的路径用于像素间的比较。如下图,算法沿着螺旋路径选取用于比较像素点,这种路径选择包含了整个图像的全局明暗关系。并且越靠近预测中心点选取的点数越多,因为靠的近的像素点与中心像素点的相关性要比远处的高。此迭代方案基于成对像素亮度值间的互动,这一像素对在图像中的坐标(x,y)、(xs,ys)。第一原创 2014-12-01 21:52:32 · 6970 阅读 · 3 评论 -
Retinex系列之McCann99 Retinex
一、McCann99 RetinexMcCann99利用金字塔模型建立对图像的多分辨率描述,自顶向下逐层迭代,提高增强效率。对输入图像的长宽有严格的限制,要求可表示成 ,且 ,。上述限制来源于金字塔模型的结构要求,由于要对输入图像进行下采样,金字塔中上层低分辨率图像的宽分别为下层高分辨率图像的1/2,顶层(第n层)大小为,底层(第0层)为原图像。金字塔结构如下图所示。McCan原创 2014-12-03 11:27:48 · 4729 阅读 · 2 评论 -
灰度世界算法(Gray World Algorithm)
人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备不具有这样的调节功能,不同的光照环境会导致采集的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜色平衡(校正)算法,消除光照环境对颜色显现的影响。灰度世界算法是最常用平衡算法。一、灰度世界算法灰度世界算法以灰度世界假设为基础,该假设认为:对于一幅有着大量色彩变化的图像,,三个分量的原创 2014-12-07 18:40:35 · 17808 阅读 · 0 评论 -
空域高斯滤波与频域高斯滤波
卷积定理函数空间域的卷积的傅里叶变换是函数傅里叶变换的乘积。对应地,频率域的卷积与空间域的乘积存在对应关系。即:由卷积定理可知所有频域的滤波理论上都可以转化为空域的卷积操作。给定频率域滤波器,可对其进行傅里叶逆变换得到对应的空域滤波器;滤波在频域更为直观,但空域适合使用更小的滤波模板以提高滤波速度。因为相同尺寸下,频域滤波器效率高于空域滤波器,故空域滤波需要原创 2014-12-13 14:52:06 · 24505 阅读 · 3 评论 -
图像处理中振铃现象
图像处理中,对一幅图像进行滤波处理,若选用的频域滤波器具有陡峭的变化,则会使滤波图像产生“振铃”,所谓“振铃”,就是指输出图像的灰度剧烈变化处产生的震荡,就好像钟被敲击后产生的空气震荡。如下图:由卷积定理可将下面两种增强联系起来:频域增强:空域卷积:其中f,g,h分别为输入图像,增强图像,空域滤波函数;F,G,H分别为各自的傅里叶变换。*为卷积符号。在空间域原创 2014-12-16 23:40:57 · 42904 阅读 · 7 评论 -
彩色模型
彩色模型(又称彩色空间或彩色系统)是描述色彩的一种方法,本质上,彩色模型就是坐标系统和子空间的规范,系统中的每种颜色由单个点来表示。下面介绍两种最常用的c彩色模型。RGB彩色模型:RGB模型是最通用的面向设备的彩色模型,主要用于彩色显示器和彩色视频摄像机。RGB模型利用了三原色原理,即大多数颜色都可由红、绿、蓝三原色按不同比例混合构成。该模型确定的彩色子空间如下:红、绿、蓝原创 2015-01-08 20:43:51 · 4235 阅读 · 0 评论 -
常用资源链接
本文主要收集本文作者收藏的资源链接,以备查用。本文会持续更新!1. 对于从事codec研发,尤其是语音和音频codec研发的人,都知道的ITU-3GP组织。这里汇集了所有与ITU-3GP codec相关的资源,主要包括标准文档, 当然还有各个标准的参考代码。 1.1 http://www.itu.int/rec/T-REC-G/en ITU-G系列转载 2015-04-07 11:41:24 · 2640 阅读 · 0 评论 -
机器视觉开源代码集合
出处:http://www.cnblogs.com/einyboy/p/3594432.html一、特征提取Feature Extraction:SIFT [1] [Demo program][SIFT Library] [VLFeat]PCA-SIFT [2] [Project]Affine-SIFT [3] [Project]SURF [4] [OpenSURF]转载 2015-04-11 13:57:35 · 1299 阅读 · 0 评论 -
图像去噪算法简介
一,背景 随着各种数字仪器和数码产品的普及,图像和视频已成为人类活动中最常用的信息载体,它们包含着物体的大量信息,成为人们获取外界原始信息的主要途径。然而在图像的获取、传输和存贮过程中常常会受到各种噪声的干扰和影响而使图像降质,并且图像预处理算法的好坏又直接关系到后续图像处理的效果,如图像分割、目标识别、边缘提取等,所以为了获取高质量数字图像,很有必要对图像进行降噪处理,尽可能的保转载 2015-04-27 23:28:23 · 5026 阅读 · 0 评论 -
双边滤波与引导滤波
转自 http://blog.youkuaiyun.com/aichipmunk/article/details/20704681双边滤波双边滤波很有名,使用广泛,简单的说就是一种同时考虑了像素空间差异与强度差异的滤波器,因此具有保持图像边缘的特性。先看看我们熟悉的高斯滤波器其中W是权重,i和j是像素索引,K是归一化常量。公式中可以看出,权重只和像素之间的空间距离有转载 2015-04-29 14:52:00 · 1356 阅读 · 0 评论 -
积分图像
积分图像(integral image)是一种用于快速计算矩形区域和的数据结构,常用它来对耗时算法进行加速。积分图像中点(x,y)处的值是指从灰度图像的左上角与当前点所围成的矩形区域内所有像素点的灰度值之和,即:原创 2015-06-06 10:30:16 · 6328 阅读 · 2 评论 -
积分图像的应用(一):局部标准差
局部标准差在图像处理邻域具有广泛的应用,但是直接计算非常耗时,本文利用积分图像技术对局部标准差进行快速计算。标准差定义如下(采用统计学中的定义,分母为):其中。为了计算图像的局部标准差,首先设定局部区域的大小为 ,则局部区域的像素点个数 。对标准差的公式进行化简:因,故:可以看出,局部标准差计算中需要对图像与进行局部求和操作,即和。原创 2015-06-06 13:31:49 · 8861 阅读 · 2 评论 -
非局部均值去噪(NL-means)
非局部均值(NL-means)是近年来提出的一项新型的去噪技术。该方法充分利用了图像中的冗余信息,在去噪的同时能最大程度地保持图像的细节特征。基本思想是:当前像素的估计值由图像中与它具有相似邻域结构的像素加权平均得到。理论上,该算法需要在整个图像范围内判断像素间的相似度,也就是说,每处理一个像素点时,都要计算它与图像中所有像素点间的相似度。但是考虑到效率问题,实现的时候,会设定两个固定大小的窗口:...原创 2015-09-06 15:17:02 · 46352 阅读 · 41 评论 -
积分图像的应用(二):非局部均值去噪(NL-means)
非局部均值去噪(NL-means)一文介绍了NL-means基本算法,同时指出了该算法效率低的问题,本文将使用积分图像技术对该算法进行加速。假设图像共像个素点,搜索窗口大小,领域窗口大小, 计算两个矩形邻域间相似度的时间为,对于每个像素点需要计算它与搜索窗口内个像素间的相似度,故NL-means复杂度为 。经过分析可以发现,该算法可以提高之处只有邻域间相似度的计算,即耗时的操作。基原创 2015-09-06 15:18:25 · 20962 阅读 · 16 评论 -
快速高斯滤波
高斯滤波器是图像处理中经常用到的滤波器,其滤波核函数为:为简单起见,这里省略了归一化因子。由的可分离特性:得:其中为输入图像,为输出图像,为滤波模板半径。根据准则,通常使。由此可见,我们可以将二维高斯滤波分解为两次一维高斯滤波。对于二维高斯滤波,设图像大小,高斯模板大小,处理每个像素点需要次操作,则算法复杂度。若使用一维高斯核对图像逐行滤波,再对原创 2015-09-25 15:39:35 · 1969 阅读 · 0 评论 -
双边滤波
双边滤波是一种非线性滤波器,该算法结合空间信息和亮度相似性对图像进行滤波处理,在平滑滤波的同时能大量保留图像的边缘和细节特征。 定义如下: 其中为输出图像,为输入图像,是以像素点为中心的邻域窗口,为滤波核。双边滤波的滤波核由两部分乘积组成:空域核与值域核。两个滤波核原创 2015-09-25 23:39:32 · 3195 阅读 · 2 评论 -
对比度受限的自适应直方图均衡化(CLAHE)
直方图均衡化(HE)是一种很常用的直方图类方法,基本思想是通过图像的灰度分布直方图确定一条映射曲线,用来对图像进行灰度变换,以达到提高图像对比度的目的。该映射曲线其实就是图像的累计分布直方图(CDF)(严格来说是呈正比例关系)。然而HE是对图像全局进行调整的方法,不能有效低提高局部对比度,而且某些场合效果会非常差。如:原创 2015-11-02 14:04:59 · 40939 阅读 · 11 评论 -
Zernike矩之图像重建(附源码)
Zernike矩是一种正交矩,由Teague在1980年提出,本文将介绍Zernike矩的基本概念,并使用Zernike矩进行图像重建。原创 2016-01-30 10:07:16 · 6218 阅读 · 1 评论 -
Zernike矩之边缘检测(附源码)
由于Zernike矩是一种积分算子,因此对噪声不敏感,这一优良特性在图像处理中极其难得。下面我们将介绍Zernike矩在边缘检测中的应用。利用Zernike矩进行边缘检测最早由Ghosal等人[4]提出。原创 2016-01-30 10:25:08 · 16066 阅读 · 14 评论 -
IIR型高斯滤波的原理及实现
高斯滤波是图像处理中一种应用广泛的滤波器。通常使用二维高斯模板与图像的卷积实现高斯滤波,处理时间与模板大小的有关,或者说跟高斯标准差有关(由“3sigma准则”可知,模板宽度取为标准差的6倍时可覆盖0.9974的数据)。本文将介绍一种IIR型高斯滤波,该滤波器的处理时间只与图像大小有关,而与标准差无关。该方法基于高斯函数的一个多项式近似:原创 2016-02-28 00:08:07 · 3088 阅读 · 0 评论 -
模拟滤波器到数字滤波器的转化
冲激不变法首先将$H(s)$进行拉普拉斯反变换得到单位冲激响应$h(t)$,对$h(t)$进行采样得到$h[n]$,再对$h[n]$进行$z$变换得到$H(z)$。因为数字滤波器的冲激响应是对模拟滤波器冲激响应的采样,因此该方法获得的滤波器时域逼近特性好。假设$H(s)$为有理多项式,且只有单阶极点,利用部分分式表达如下:原创 2016-03-01 00:05:32 · 3543 阅读 · 0 评论 -
关于BMP
关于BMP位图的资料网上有很多,内容也比较基础。本文实现BMP位图的读取、显示、保存,并对一些重要的问题进行说明(包括字节对齐、内存中的存储顺序、调色板)。BMP共包括文件头、信息头、调色板(位深各部分的具体说明可以参考[1]。下面是位图的读取、显示、保存实现的主体代码,完整工程下载:Bmptest原创 2016-06-03 09:35:45 · 1056 阅读 · 0 评论 -
Harris角点检测原理及实现
一、原理二、实现close all;clear all;I=imread('test.tif');[posX,posY]=harris(I);figure;imshow(I);hold on; plot(posX, posY, 'g*');function [posX,posY]=harris(I)%Harris角点检测%I:输入图像%posX:角点X坐标原创 2016-06-23 22:00:29 · 6037 阅读 · 4 评论 -
形态学操作实现
数学形态学的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。数学形态学的基本运算有四个:腐蚀、膨胀、开和闭。基于这些基本运算还可以推导和组合成各种数学形态学实用算法。本实验分别实现针对二值图像和灰度图像的四种形态学操作。一、二值图像的腐蚀、膨胀、开、闭操作实验结果:二、灰度图像的腐蚀、膨胀、开、闭操作原创 2016-06-23 22:40:25 · 869 阅读 · 0 评论 -
Hu矩
本文介绍了Hu不变矩并给出matlab实现。原创 2016-06-24 11:22:28 · 3713 阅读 · 1 评论 -
SUSAN角点检测
SUSAN是一种角点检测算法,本文首先介绍其基本原理,然后给出实现代码。如下图所示,当一个圆形模板在图像上滑动时,可以利用模板所覆盖区域内像素与中心点处像素灰度值的差异寻找角点。将模板内与中心像素差异小于某个阈值的像素点组成的区域定义为USAN(Univalue Segment Assimilating Nucleus)区域。可以发现,当模板中心处于平坦区域时,USAN面积最大,当模板中心处于边界上时,则USAN面积约为最大值的1/2,当模板中心位于角点处上时,USAN面积约为最大值的1/4。也就是说US原创 2016-06-24 21:22:58 · 2019 阅读 · 2 评论 -
GDI双缓冲绘图
一、简介在进行复杂图形绘制时,若直接在屏幕DC上进行绘制,则会出现明显的闪烁。闪烁产生的原因是当绘制的图形较为复杂时,图形绘制过程中就被刷新到屏幕上,导致结果断断续续地显示出来。双缓冲绘图的原理是在另开辟一块内存用于绘制,当所有绘制工作完成后将内存数据一次性拷贝到屏幕上。双缓冲绘图步骤:创建兼容DC(CreateCompatibleDC)创建兼容位图(CreateCompati原创 2016-06-25 21:50:19 · 1934 阅读 · 0 评论 -
汇编学习:二维数组遍历
作为正式接触汇编的开篇,本文将研究二维数组的遍历问题。在图像处理中,通常需要遍历图像像素(即二维数组)。下面给出三个版本的遍历函数,并研究他们的汇编代码(VC2010编译器,x86版,Release模式)。(1)在两层循环内每次根据行列索引计算元素位置。(2)为了避免在内存循环内的乘法计算,可以在每次的外层循环中计算好行起始地址,内层循环每次执行++操作。(3)强外层循环的乘法操作也去原创 2016-10-07 23:36:40 · 3348 阅读 · 0 评论