数字图像处理实验报告:灰度变换与空间滤波(附带程序,不看后悔)
3.图像增强—灰度变换 - 数字图像处理实验报告

计算机与信息工程学院验证性实验报告一、实验目的:1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、学会对图像直方图的分析。
3、掌握直接灰度变换的图像增强方法。
二、实验原理及知识点术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。
空间域处理方法分为两种:灰度级变换、空间滤波。
空间域技术直接对像素进行操作其表达式为g(x,y)=T[f(x,y)]其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。
定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域。
此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。
T应用于每个位置(x,y),以便在该位置得到输出图像g。
在计算(x,y)处的g值时,只使用该领域的像素。
灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f 在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。
当处理单设(灰度)图像时,这两个术语可以互换。
由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。
三、实验内容:1、图像数据读出2、计算并分析图像直方图3、利用直接灰度变换法对图像进行灰度变换下面给出灰度变化的MATLAB程序f=imread('medicine_pic.jpg');g=imhist(f,256); %显示其直方图g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像)figure,imshow(g1)%将0.5到0.75的灰度级扩展到范围[0 1]g2=imadjust(f,[0.5 0.75],[0 1]);figure,imshow(g2)g=imread('point.jpg');h=log(1+double(g)); %对输入图像对数映射变换h=mat2gray(h); %将矩阵h转换为灰度图片h=im2uint8(h); %将灰度图转换为8位图figure,imshow(h)四、实验仪器PC一台,MATLAB软件五、实验图片columbia480.bmp Fig0704(Vase).tif.tif六、实验程序及结果clc;clear allf=imread('columbia480.bmp');subplot 121;imshow(f)title('原始图像')subplot 122;imhist(f,256)title('原始图像直方图')%灰度转换,实现明暗转换(负片图像)f1=imadjust(f,[0 1],[1 0]);figure(2)subplot 121,imshow(f1)title('明暗转换后的图像')subplot 122;imhist(f1,256) title('明暗转换直方图')%将0.5到0.75的灰度级扩展到范围[0 1] f2=imadjust(f,[0.5 0.75],[0 1]); figure(3)subplot 121;imshow(f2)title('0.5到0.75的灰度级扩展到范围[0 1]的图像') subplot 122;imhist(f2,256) title('灰度级扩展直方图')原始图像0原始图像直方图100200明暗转换后的图像明暗转换直方图1002000.5到0.75的灰度级扩展到范围[0 1]的图像04灰度级扩展直方图100200clc;clear allm=imread('Fig0704(Vase).tif.tif');h=log(1+double(m)); %对输入图像对数映射变换 h=mat2gray(h); %将矩阵h 转换为灰度图片 h=im2uint8(h); %将灰度图转换为8位图 figuresubplot 221;imshow(m) title('原始图像') subplot 222;imhist(m) title('原始图像直方图') subplot 223;imshow(h)title('经log 变换后的图像') subplot 224;imhist(h)title('经log 变换后的图像直方图')原始图像原始图像直方图100200经log变换后的图像0经log 变换后的图像直方图100200教师签名:年 月 日。
数字图像处理实验报告(图像灰度变换处理)

数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的:1 学会使用Matlab;2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验原理:Matlab中经常使用的一些图像处理函数:读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。
显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in 以下及high_in以上归零。
绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。
像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。
图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。
四.实验步骤:1.获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。
2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105+2.6333(r–0.35) 0.35 ≤ r ≤ 0.65 1+0.3(r–1) r > 0.65用T1对原图像Fig3.10(b).jpg进行处理,打印处理后的新图像。
数字图像处理实验一 图像的灰度变换

数字图像处理实验报告(一)班级:测控1002姓名:刘宇学号:06102043实验一图像的灰度变换1. 实验任务熟悉MATLAB软件开发环境,掌握读、写图像的基本方法。
理解图像灰度变换在图像增强的作用,掌握图像的灰度线性变换和非线性变换方法。
掌握绘制灰度直方图的方法,掌握灰度直方图的灰度变换及均衡化的方法。
2. 实验环境及开发工具Windws2000/XPMATLAB 7.x3. 实验原理灰度变换灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。
在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:图1.1 不同的分段线性变换其对应的数学表达式为:直方图均衡化灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。
依据定义,在离散形式下,用rk 代表离散灰度级,用pr(rk)代表pr(r),并且有下式成立:n n r P kk r =)( 1,,2,1,010-=≤≤l k r k式中:nk 为图像中出现rk 级灰度的像素数,n 是图像像素总数,而nk/n 即为频数。
直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。
假定变换函数为ωωd p r T s r r)()(0⎰==(a) Lena 图像 (b) Lena 图像的直方图 图1.2 Lena 图像及直方图当灰度级是离散值时,可用频数近似代替概率值,即1,,1,010)(-=≤≤=l k r nn r p k kk r式中:l 是灰度级的总数目,pr(rk)是取第k 级灰度值的概率,nk 是图像中出现第k 级灰度的次数,n 是图像中像素总数。
所以积分可以表示为下列累计分布函数(cumulative distribution function, CDF)1,,1,010)()(00-=≤≤===∑∑==l k r r p nn r T s j kj j r kj j k k4. 实验内容1、熟悉使用MATLAB 语言中对图像数据读取、显示等基本函数:imread()函数、imwrite()函数、imshow()函数、Figure ()函数。
《数字图像处理》实验报告

《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。
在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。
首先,我们进行了图像的读取和显示实验。
通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。
这为我们后续的实验奠定了基础。
同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。
这使我们能够更好地理解后续实验中的算法和操作。
接下来,我们进行了图像的灰度化实验。
灰度化是将彩色图像转换为灰度图像的过程。
在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。
通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。
随后,我们进行了图像的直方图均衡化实验。
直方图均衡化是一种用于增强图像对比度的方法。
在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。
通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。
在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。
滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。
在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。
通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。
此外,我们还进行了图像的边缘检测实验。
边缘检测是一种用于提取图像边缘信息的方法。
在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。
通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。
最后,我们进行了图像的压缩实验。
图像压缩是一种将图像数据进行压缩以减小文件大小的方法。
数字图像处理灰度变换与空间域matlab

学号: 0000000000 姓名:0000000实验一灰度变换与空间域滤波一.实验目的及要求1.了解MATLAB的操作环境和图像处理工具箱Image Processing Toolbox的功能;2.加深理解图像灰度变换与空间域滤波概念和算法原理;3.掌握MATLAB中图像灰度变换与空间域滤的实现方法。
二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
利用MATLAB帮助文档熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
(可将每段程序保存为一个.m文件)1.图像及视频文件的基本操作(1)RGB彩色图像数据的读写操作clear all; %清除工作空间的所有变量,函数,和MEX文件close all; %关闭所有的Figure窗口%查看一幅RGB彩色图像文件的信息fileinfo = imfinfo('Fig0701_fruits.jpg')%暂停,阅读命令窗口中的结果,按空格键继续pause;%读取该图像I=imread('Fig0701_fruits.jpg');%显示图像imshow(I); title('Original RGB true color image');%查看图像像素信息,在图像上移动鼠标,注意左下角的信息impixelinfo;%暂停,按空格键继续pause;% 读取图像的颜色分量,并保存到二维矩阵变量中IR = I(:,:,1);IG = I(:,:,2);IB = I(:,:,3);%以灰度图像的方式显示各颜色分量figure, imshow(IR); title('R分量');figure, imshow(IG); title('G分量');figure, imshow(IB); title('B分量');%在图像左上角画一条5像素宽、100像素长的水平稍暗红线I(31:35,61:160,1)=200;I(31:35,61:160,2)=0;I(31:35,61:160,3)=0;%%显示处理结果figure, imshow(I); title('在图像背景中画红线');%将结果保存为tif格式图像文件imwrite(I,'fruits_bar.tif');%--------------------------------------------------------------------------------(2)索引图像与 RGB彩色图像之间的转换close all;clear all;%读入一幅RGB彩色图像IRGB=imread('Fig0701_fruits.jpg');%显示读入的RGB彩色图像figure, imshow(IRGB); title(' Original RGB image');%把RGB彩色图像转换为索引图像,为了比较差异,选择颜色表中的颜色数量为64 [Xind, map] = rgb2ind(IRGB,64);%显示转换后的索引图像figure, imshow(Xind, map); title('Converted to Indexd image');%将结果保存为tif格式图像文件imwrite(Xind,map,'fruits_indexed.tif');%读入一幅彩色索引图像并显示[Ind, map2]=imread('trees.tif');figure, imshow(Ind, map2); title(' Original Indexd image');%查看图像像素信息,在图像上移动鼠标,注意左下角的信息impixelinfo;%暂停,按空格键继续pause;%把索引图像转换为RGB彩色图像Irgb = ind2rgb(Ind, map2);%显示得到的彩色图像figure, imshow(Irgb); title('Converted to RGB image');%将结果保存为jpg格式图像文件imwrite(Irgb,'trees_rgb.jpg');%--------------------------------------------------------------------------(3)彩色图像转换为灰度图像和无彩色图像close all;clear all;%读取一幅RGB彩色图像Irgb=imread('Fig0701_fruits.jpg');%将其转换为灰度图像Igray1 = rgb2gray(Irgb);%显示转换结果figure, imshow(Irgb); title('Original RGB image');figure, imshow(Igray1); title('Converted gray image');%将上述RGB彩色图像转换为无彩(灰色)彩色图像,%即转换后的图像数据仍为RGB彩色图像格式%创建一个与真彩色图像转维数相同的uint8型矩阵Iachro=uint8(zeros(size(Irgb)));%Iachro (:,:,1)=Igray1;Iachro (:,:,2)=Igray1;Iachro (:,:,3)=Igray1;%显示转换的无彩色图片figure, imshow(Iachro); title('Converted achromatic color image'); %--------------------------------------------------------------------------------(4)灰度彩色图像转换为二值图像clc,clear, close all, close all;%读取一幅灰度图像并显示I = imread('rice.png');figure, imshow(I);%利用阈值分割把灰度图像转换为二值图像level = graythresh(I);bw = im2bw(I, level);%显示转换后的图像figure, imshow(bw); title('Converted binary image');%查看图像像素信息,在图像上移动鼠标,注意左下角的信息impixelinfo;%----------------------------------------------------------------------------(5)视频文件的读取及图像帧的抽取(选作)%采用参考图像实现运动目标分割% 该m文件使用参考图像实现背景减法% 用于移动对象分割clear all; close all;%构造一个videoreader类来读取avi文件,首先是'traffic.avi' , % 然后是‘highwayII_raw.avi'.videoObj = VideoReader('traffic.avi');numFrames =videoObj.NumberOfFrames;% 读取视频序列中的第一帧作为参考背景图像newframe = read(videoObj, 1);Iref = double(newframe);% 获取框架的高度、宽度和颜色组件的数量[height, width, numColor]=size(newframe);% 为阈值指定一个值Threh = 20;fg = zeros(height, width);% 为了避免消耗太多的内存,每次只读取一个帧for n = 1:numFramesnewframe = read(videoObj, n);% 计算新帧之间的绝对差值% 和参考帧IrefIdiff = abs(double(newframe) - Iref);%运动段,通过检测运动物体的运动轨迹fg = Idiff >Threh;if ( numColor == 3) % color imagefg = fg(:, :, 1) | fg(:, :, 2) | fg(:, :, 3);endpause(0.1);figure(1);subplot(1,2,1), imshow(newframe);title(strcat('Current Image, No. ', int2str(n)));subplot(1,2,2), imshow(fg);title('Segmented result using reference image');end %------------------------------------------------------------2. 图像灰度变换(1)使用工具箱函数 i madjust 的直接灰度变换clear all; close allI = imread('cameraman.tif');J = imadjust(I,[0 0.2],[0.5 1]);imshow(I)figure, imshow(J)[X,map] = imread('forest.tif');figure,imshow(X,map)I2 = ind2gray(X,map);J2 = imadjust(I2,[],[],0.5);figure,imshow(I2);figure, imshow(J2);J3 = imadjust(I2,[],[],1.5);figure, imshow(J3);help imadjust %显示imadjust()函数信息功能:灰度变换就是把原图像的像素灰度经过某个变换函数变换成新的图像灰度。
数字图像处理实验报告之数字图像的空间域滤波

数字图像处理实验报告学院:班级:学号:时间:2012.11.29实验三:数字图像的空间域滤波——锐化滤波1.实验目的1.掌握图像滤波的基本定义及目的。
2.理解空间域滤波的基本原理及方法。
3.掌握进行图像的空域滤波的方法。
2.实验基本原理1.空间域增强空间域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。
空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。
空域滤波一般分为线性滤波和非线性滤波两类。
线性滤波器的设计常基于对傅立叶变换的分析,非线性空域滤波器则一般直接对领域进行操作。
各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。
平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。
锐化可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。
结合这两种分类方法,可将空间滤波增强分为四类:线性平滑滤波器(低通)非线性平滑滤波器(低通)线性锐化滤波器(高通)非线性锐化滤波器(高通)空间滤波器都是基于模板卷积,其主要工作步骤是:1)将模板在图中移动,并将模板中心与图中某个像素位置重合;2)将模板上的系数与模板下对应的像素相乘;3)将所有乘积相加;4)将和(模板的输出响应)赋给图中对应模板中心位置的像素。
2.锐化滤波器图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,需要利用图像锐化技术,使图像的边缘变得清晰。
1)线性锐化滤波器线性高通滤波器是最常用的线性锐化滤波器。
这种滤波器的中心系数都是正的,而周围的系数都是负的,所有的系数之和为0。
对3×3 的模板来说,典型的系数取值为:[-1 -1 -1;-1 8 -1;-1 -1 -1]事实上这是拉普拉斯算子。
图像处理实验报告

数字图像处理实验报告姓名:学号:专业:[2015.6.25]一、彩色图BMP图像转灰度图1.实验要求打开一幅*.bmp图像, 并将彩色图像变灰度图像, 并读取图像数据。
2.实验内容(1)一般BMP图像的结构一般的bmp文件的结构可分为三部分: 表头、调色板和图像数据。
①BMP文件头(14字节) ,文件的第0字节到第13字节为BMP图像的文件头。
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
其结构定义如下:Typedef struct tagBITMAPFILEHEADER {WORD bfType; // 位图文件的类型, 必须为BM(0-1字节)DWORD bfSize; // 位图文件的大小, 以字节为单位(2-5字节)WORD bfReserved1; // 位图文件保留字, 必须为0(6-7字节)WORD bfReserved2; // 位图文件保留字, 必须为0(8-9字节)DWORD bfOffBits; //位图阵列的偏移量, (10-13字节)// 位图阵列的偏移量, 以字节为单位, 说明从文件头开始到实际图像数据之间的字节偏移量} BITMAPFILEHEADER;②BMP信息头位图信息头(40字节), 文件的第14个字节到第53个字节为BMP图像的信息头, 位图信息头数据用于说明位图的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{DWORD biSize; // 本结构所占用字节数(14-17字节)LONG biWidth; // 位图的宽度, 以像素为单位(18-21字节)LONG biHeight; // 位图的高度, 以像素为单位(22-25字节)WORD biPlanes; // 目标设备的级别, 值为1(26-27字节)WORD biBitCount; // 每个像素所需的位数, 必须是1(双色), 4(16色), 8(256色)或24(真彩色)之一(28-29字节)DWORD biCompression; // 位图压缩类型, 必须是0(不压缩), 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一(30-33字节)DWORD biSizeImage; // 位图的大小, 以字节为单位(34-37字节)LONG biXPelsPerMeter; // 位图水平分辨率, 每米像素数(38-41字节)LONG biYPelsPerMeter; // 位图垂直分辨率, 每米像素数(42-45字节)DWORD biClrUsed; // 位图实际使用的颜色表中的颜色数(46-49字节)DWORD biClrImportant; // 位图显示过程中重要的颜色数(50-53字节)} BITMAPINFOHEADER;③调色板调色板用于说明位图中的颜色, 它有若干个表项, 每一个表项是一个RGBQUAD类型的结构, 定义一种颜色。
数字图像处理实验二报告(图像滤波器)

实验报告课程名称数字图像处理实验名称图像滤波器姓名学号 20120712 专业班级数媒1202 实验日期 2014 年 10 月 16日成绩指导教师一、实验目的1.继续熟悉仿真工具MATLAB2.巩固图像读取与显示的方法3.掌握给图像添加噪声的方法4.掌握图像空间域的滤波方法5.掌握图像频率域的滤波方法二、实验原理图像的平滑有模糊图像和消除噪声的功能。
图像锐化则是使模糊的图像变清晰,增强图像的边缘细节。
对图的处理像既可以在频率域内进行,又可在空间域进行(一般为模版卷积方式)。
从信号频谱角度来讲,信号缓慢变化的部分(大面积背景区和灰度变化缓慢的区域)在频域表现为低频,迅速变化的部分(图像边缘、跳跃以及噪声等灰度变化剧烈的区域)则表现为高频。
因此,通过低通滤波来实现图像的平滑,而高通滤波可以实现图像的锐化。
三、实验环境Windows XP/ Windows 7Matlab 7.0.1/ Matlab R2008四、实验内容与步骤1.空间平滑域操作读取并显示一幅灰度图像,对原图像分别添加高斯噪声和椒盐噪声,并显示添加噪声之后的图像:调整高斯噪声和椒盐噪声的参数,比较不同参数之间噪声的区别;进行平滑操作,观察、记录并比较实验结果;针对两幅含有噪声的图像,采用中值滤波方法进行平滑处理,观察并记录实验结果,并将之与上一步实验结果相比较,得出结论。
2.空间锐化操作读取并显示一幅灰度图像,分别采用Prewitt水平/垂直边缘检测算子,Sobel水平/垂直边缘检测算子对原图像进行锐化操作,比较实验结果;采用拉普拉斯模板进行锐化处理,与上一步骤实验结果相比较。
3.图形的频域处理1)利用循环语句,自己构建理想低通滤波器;对一幅弧度图像进行傅里叶变换,显示其频谱图;对一幅灰度图像作频率域理想低通滤波,调整滤波器半径,观察并记录不同结果,分析原因;2)利用循环语句,自己构建理想高通滤波器;对同一幅灰度图像作频率域理想高通滤波,调整滤波器半径,观察并记录不同结果,分析原因;五、实验结果与分析(可提供屏幕抓图)1.添加高斯噪声与椒盐噪声:结论:高斯噪声的参数越大,图像变得越模糊,亮度也越亮。
数字图像处理报告

实验报告
课程名称:数字图像处理
实验项目:图像灰度变换
专业班级:
姓名:学号:
实验室号:信息楼实验组号:
实验时间:批阅时间:
指导教师:成绩:
(适用计算机程序设计类)
实验名称:图像灰度变换
1.实验目的:
(1)学习用C语言编写图像灰度变换程序。
(2)通过观察经过灰度变换后的图像效果,加深对图像变换物理意义的理解。
(3)掌握编程调试方法。
2.实验内容:
编写图象灰度变换程序,原始图象为128×128像素256级灰度图象。
观察经过灰度变换后的图象效果,理解图象变换的物理意义,掌握编程调试方法,写出实验报告。
3. 实验方案(程序设计说明)
(1)线性变换,读取a,b的值,设定a’,b’为[0,50],[50,100] ,[150,250]和[0,255],分别记录相应的图象;
(2)三段线性变换,读取a,b的值,自行设定拐点位置,记录变换后的图象。
4. 实验步骤或程序(经调试后正确的源程序)
(填写主要步骤与程序代码等。
见附件A)
5.程序运行结果
见附件A
(适用计算机程序设计类)
实验步骤或程序:
1.线性变换
程序如下
(1) [a’,b’]=[0,50] (2) [a’,b’]=[50,100]
(3) [a’,b’]=[150,250 (4)[a’,b’]=[0,255]
获得图像如下
原图(1) (2)
原图(3) (4)
(2)三段线性变换
程序如下
(1) [c,d]=[30,50] (1) [c,d]=[80,180]
获得图像如下
原图(1)
原图(2)。
数字图像处理实验及报告(含源码)

大学数字图像处理实验报告设计题目:数字图像处理专业名称:软件工程班级: 1 学号: 1 姓名: MARK 指导教师:2016年5月16日目录实验一数字图像的采集和Photoshop软件的操作 (4)1.1实验目的 (4)1.2实验任务及要求 (4)1.3实验内容、步骤和结果 (4)1.4 结果分析 (7)实验二图像的傅里叶变换 (8)2.1实验目的 (8)2.2实验任务及要求 (8)2.3实验内容、步骤和结果 (8)2.4 结果分析 (11)实验三图像的灰度变换和直方图变换 (12)3.1实验目的 (12)3.2实验任务及要求 (12)3.3实验内容、步骤和结果 (12)3.4 结果分析 (16)实验四图像的平滑处理 (17)4.1实验目的 (17)4.2实验任务及要求 (17)4.3实验内容、步骤和结果 (17)4.4 结果分析 (20)实验五 (21)5.1实验目的 (21)5.2实验任务及要求 (21)5.3实验内容、步骤和结果 (21)5.4 结果分析 (24)实验六 (26)6.1实验目的 (26)6.2实验任务及要求 (26)6.3实验内容、步骤和结果 (26)6.4 结果分析 (28)实验一数字图像的采集和Photoshop软件的操作1.1实验目的1、熟悉并掌握MATLAB,PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单的变换。
1.2实验任务及要求1、根据实验内容在MATLAB中编写相应地代码,使结果符合题目要求;2、在PHOTOSHOP中实现与MATLAB中相同对图像的处理,进行对比;3、完成实验报告。
1.3实验内容、步骤和结果1、实验内容:a)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口上分成三个子窗口来分别显示RGB图像、灰度图像和二值图像,注上文字标题;b)对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题;c)对一幅图像进行灰度变化,实现图像变亮,变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题;d)学会常用数字图像处理软件Photoshop的功能操作练习。
数字图像处理基本操作及灰度调整实验报告

数字图像处理基本操作及灰度调整实验报告实验目的1.掌握数字图像处理的基本概念和原理。
2.学会使用Python编程语言进行图像处理。
3.理解并实现图像灰度调整的方法。
4.分析实验结果,讨论图像处理方法的优缺点。
2.1 数字图像处理概述数字图像处理(Digital Image Processing,DIP)是一门研究使用计算机对图像进行处理的技术。
它的目的是改善图像的质量,使之更适合人类或计算机对图像进行观察和分析。
数字图像处理涉及到图像采集、存储、传输、分析以及图像的恢复等方面。
2.2 图像的表示和描述数字图像由图像元素(像素)组成,每个像素有一个对应的灰度值。
灰度值表示像素的亮度,通常用8位二进制数表示,其范围为0~255。
像素的灰度值越高,亮度越高。
数字图像可以表示为一个矩阵,矩阵中的每个元素对应一个像素的灰度值。
彩色图像通常采用RGB颜色模型,每个像素包含三个分量,分别对应红色、绿色和蓝色通道的亮度。
2.3 图像灰度调整图像灰度调整是指调整图像像素的灰度值,以改善图像的质量。
常用的图像灰度调整方法有:1.线性灰度变换:通过线性映射关系改变图像灰度值,可以实现图像亮度的调整和对比度的拉伸。
2.直方图均衡化:通过调整图像的灰度直方图,使其均匀分布,可以提高图像的对比度。
•操作系统:Windows 10•编程语言:Python 3.8•图像处理库:OpenCV 4.5.2•集成开发环境:Visual Studio Code4.1 图像读取和显示首先,我们需要使用OpenCV库读取和显示图像。
以下是读取和显示图像的Python代码:4.2 图像灰度化为了便于后续的灰度调整操作,我们需要将彩色图像转换为灰度图像。
以下是图像灰度化的Python代码:4.3 灰度调整接下来,我们将对图像进行灰度调整。
首先,实现线性灰度变换。
以下是线性灰度变换的Python代码:4.4 图像直方图均衡化直方图均衡化是一种能够提高图像对比度的方法。
数字图像处理实验报告:灰度变换与空间滤波(附带程序,不看后悔)

缺点: 是需要更多的用户输入。
技术人员想保留I1-I2区间范围的图像,将其余灰度值显示为黑色。应提取目标区域的灰度值特性, 将图像进行二值化, 即可保留范围在I1-I2区 间范围的图像,将其余灰度值显示为黑色。
优点: 速度快,实现简单;
缺点:均值滤波本身存在着固有的缺陷, 即它不能很好地保护图像细节, 在 图像去噪的同时也破坏了图像的细节部分, 从而使图像变得模糊, 不能很好地 去除噪声点。
其公式如下:
使用矩阵表示该滤波器则为:
中值滤波:
滤除盐噪声首选的方法应为中值滤波,中值滤波法是一种非线性平滑技术, 它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中 值。
优点:对于背景和前景都太亮或者太暗的图像非常有用,且计算量不大。
缺点:变换后图像的灰度级减少, 某些细节消失; 某些图像, 如直方图有高
峰,经处理后对比度不自然的过分增强。
灰度分段线性变换:
分段线性变换函数可以增强原图各部分的反差, 即增强输入图像中感兴趣的 灰度区域,相对抑制那些不感兴趣的灰度区域。
1.1
(
对于明亮且孤立的点, 其应为脉冲且灰度值为255(uint8)噪声,即盐噪声, 为此,首先对下载的细胞图像增加盐噪声,再 选择不同滤波 方式进行滤除。
均值滤波: 均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板, 该模板包括了其周围的临近像素 (以目标像素为中心的周围8个像素,构成一 个滤波模板, 即去掉目标像素本身) ,再用模板中的全体像素的平均值来代替 原来像素值。
1.
一种成熟的医学技术被用于检测电子显微镜生成的某类图像。 为简化检测任 务,技术决定采用数字图像处理技术。发现了如下问题:(1)明亮且孤立的点 是不感兴趣的点; (2)清晰度不够,特别是边缘区域不明显; (3)一些图像的 对比度不够;(4)技术人员发现某些关键的信息只在灰度值为I1-I2的范围, 因此,技术人员想保留I1-I2区间范围的图像, 将其余灰度值显示为黑色。 (5) 将处理后的I1-I2范围内的图像,线性扩展到0-255灰度,以适应于液晶显示器 的显示。请结合本章的数字图像处理处理,帮助技术人员解决这些问题。
实验报告---实验二图像灰度变换处理

(1)在左视图中打开一幅24bmp位图。
(2)制作一个【24位位图转换为8度位图】菜单,将消息映射到右视图中,在右视图
中将24位位图转换为8度位图显示,完成文件保存功能。
实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)
硬件环境
PC
实验目的
1.实现彩色图像的灰度变换。
2.将给定彩色图像中的目标物体提取,与背景分离,进行二值化。
3.将给定的真彩色24位位图转换为8度位图,并保存8位的灰度位图。
实验内容(应包括实验题目、实验要求、实验任务等)
1.实现彩色图像的灰度变换。
要求:显示一幅24位图,进行灰度变换。
任务:
(1)在左视图中打开一幅24bmp位图。
(2)制作一个【图像的灰度变换】菜单,将消息映射到右视图中,在右视图
中显示位图,完成彩色图像的灰度变换功能。
Gray(i,j)=0.11R(i,j)+0.59G(i,j)+0.3B(i,j)
2.将给定彩色图像中的目标物体提取,与背景分离,进行二值化。
要求:在上面要求的基础上。
将图像中的齿轮目标物体提取,与背景分离,进行二值化。
天津理工大学
计算机与通信工程学院
实验报告
2010至2011学年第一学期
实验二图像灰度变换处理
课程名称
数字图像处理
学号
学生姓名
年级
专业
教学班号
1
实验地点
主7-219
实验时间
2012年4月23日第9节至第810节
主讲教师
杨淑莹
辅导教师
实验(二)
实验名称
图像灰度变换处理
软件环境
Windows
数字图像处理实验 图像空间滤波

数字图像处理实验报告实验三图像空间滤波1、实验目的图像的空间滤波能够实现对图像锐化、亮度增强等操作,通过此功能能够得到所需图像,进行观察各种滤波器的区别与使用范围。
2、实验步骤(1).通过如下污染一幅图像的方式创建一组带噪声的图像:•a加入高斯噪声 b加入椒盐噪声•使用如下技术:•创建2个平滑线形滤波器并分别对上述加噪图像实现线性滤波,比较其优劣, 并写入实验报告:•[ 1 1 1 [ 1 2 1• 1 1 1 2 4 2• 1 1 1 ] 1 2 1 ](2).实现中值滤波对上述加噪图像的处理结果,总结中值滤波和均值滤波各适合用于处理的噪声类型,并写入实验报告。
(3).对一幅模糊的图像使用两种锐化空间滤波器进行增强,并比较效果。
3、实验源码(1)加入高斯噪声makeI=imnoise(W,'gaussian',0,0.005);figure,imshow(makeI);imwrite(makeI,'3-1-gaussian.jpg')(2)加入椒盐噪声makeI=imnoise(W,'salt & pepper',0.01);figure,imshow(makeI);imwrite(makeI,'3-1-salt.jpg')(3)创建两个平滑线性滤波器h=[1 1 1;1 1 1; 1 1 1]a.高斯噪声的图像I=imread('3-1-gaussian.jpg')K=rgb2gray(I)imshow(i)h=[1 1 1;1 1 1;1 1 1]I2 = filter2(h,K);imshow(I2,[]), colorbarb.椒盐噪声的图像W=imread('3-1-salt.jpg')T=rgb2gray(W)I2 = filter2(h,T);imshow(I2,[]), colorbarh=[1 2 1;2 4 2;1 2 1]a.高斯噪声的图像h=[1 2 1;2 4 2;1 2 1]I2 = filter2(h,i);imshow(I2,[]), colorbarb.椒盐噪声的图像I2 = filter2(h,T);imshow(I2,[]), colorbar实现中值滤波(椒盐),观察处理结果可知适于处理椒盐噪声R=imread('3-1-salt.jpg')T=rgb2gray(R)makeI=medfilt2(T,'symmetric');figure,imshow(makeI);实现中值滤波(高斯)R=imread('3-1-gaussian.jpg')T=rgb2gray(R)makeI=medfilt2(T,'symmetric');figure,imshow(makeI);4、实验截图原图加入高斯噪声后如下图:加入椒盐噪声后如下图:A.高斯噪声的图像处理如下:B .椒盐噪声的图像处理如下:平滑线性滤波器h=[1 2 1;2 4 2;1 2 1] A .对高斯噪声图像的处理如下:B.对椒盐噪声图像的处理如下:对已加入椒盐噪声的图像的处理如下:对已加入高斯噪声图像的处理如下:5、实验小结通过本次实验的观察:(1)、中值滤波更适于处理含有椒盐噪声的图像,噪声有明显的消除。
数字图像处理实验报告

数字图像处理实验报告一、引言数字图像处理是一门涉及图像获取、图像处理和图像分析的重要学科,广泛应用于计算机科学、电子工程、通信技术等领域。
本报告旨在介绍并总结我所进行的数字图像处理实验,讨论实验的目的、方法、结果和分析。
二、实验目的通过本次实验,旨在掌握和理解数字图像处理的基本原理和常见技术,包括灰度变换、空间域滤波、频域滤波等,以及层次分割、边缘检测和形态学处理等高级应用技术。
三、实验方法1. 寻找合适的图像在实验中,我选用了一张自然风景图像作为处理对象。
这张图像包含丰富的纹理和颜色信息,适合用于多种图像处理方法的验证和比较。
2. 灰度变换灰度变换是数字图像处理中常见的基础操作,可以通过对图像的像素灰度值进行线性或非线性变换,来调整图像的对比度、亮度等特征。
在实验中,我利用线性灰度变换方法将原始彩色图像转换为灰度图像,并进行对比度的调整,观察处理结果的变化。
3. 空间域滤波空间域滤波是一种基于像素邻域的图像处理方法,常用于图像去噪、边缘增强等应用。
我使用了平滑滤波和锐化滤波两种方法,并针对不同的滤波算子和参数进行了实验和比较,评估其对图像细节和边缘保留的影响。
4. 频域滤波频域滤波是一种基于图像的频谱特征的图像处理方法,广泛应用于图像增强、去噪和特征提取等方面。
我利用傅里叶变换将图像从空间域转换到频域,采用理想低通滤波器和巴特沃斯低通滤波器进行图像的模糊处理,并进行了实验对比和分析。
5. 高级应用技术在实验中,我还研究了数字图像处理中的一些高级应用技术,包括层次分割、边缘检测和形态学处理。
通过应用不同的算法和参数,我实现了图像区域分割、提取图像边缘和形态学形状变换等效果,评估处理结果的准确性和稳定性。
四、实验结果与分析通过对以上实验方法的实施,我获得了一系列处理后的图像,并进行了结果的比较和分析。
在灰度变换实验中,我发现线性变换对图像的对比度有较大影响,但对图像的细节变化不敏感;在空间域滤波实验中,平滑滤波可以有效降噪,但会导致图像细节损失,而锐化滤波可以增强图像的边缘效果,但也容易引入噪声;在频域滤波实验中,理想低通滤波对图像的模糊效果明显,而巴特沃斯低通滤波器可以在一定程度上保留图像的高频细节信息;在高级应用技术实验中,边缘检测和形态学处理对提取图像边缘和形状变换非常有效,但参数的选择会对结果产生较大影响。
数字图像处理实验报告灰度修正和锐化技术

灰度修正和锐化技术摘要1.灰度变换:选择一副对比度不足的图像,对该图进行灰度变换,增强对比度,显示增强前、后的图像以及他们的灰度直方图。
2.直方图均衡:选择一副灰度直方图不均匀的图像,对该图像做直方图均衡处理,显示处理前后的图像以及他们的灰度直方图。
3.选择一副边缘较模糊的图像,利用高通滤波器对此图像边缘增强,观察增强的效果。
正文1.灰度变换可以增大图像的动态范围,扩大图像的对比度,使图像特征变得明显。
灰度变换包括灰度的线性变换和非线性变换。
增强前增强后10020005000100000100200510x 1042.直方图均衡化是通过对原图像进行某种灰度变换,是变换后图像的直方图能均匀分布,这样就能使原图像中具有相近灰度且占有大量像素点的区域之灰度范围展宽,使大区域中的微小灰度变化显现出来,使图像更清晰。
原图像01002000.511.522.53x 104原图像直方图均衡化后的图像01002000.511.522.53x 104均衡化后的直方图3.图像锐化就是希望增强图像中的边缘(细节)信息,及对边缘信息进行增强。
频域中的锐化技术可以采用高通提升滤波法。
即让低频通过,而将高频提升,以达到增强图像中高频信息的目的,实现图像的锐化。
原图像IHPF D0=15IHPF D0=30IHPF D0=50附录程序1. >> A=imread('E:\龙猫\123.jpg'); >> y1=rgb2gray(A);>> B=imadjust(y1,[0.35 0.65],[]); >>figure(1)>> subplot(2,2,1);imshow(y1); >> title('增强前')>> subplot(2,2,2);imhist(y1);>> subplot(2,2,3);imshow(B);>> title('增强后')>> subplot(2,2,4);imhist(B);2. >> x=imread('d:\shu.jpg');>> y1=rgb2gray(x);>> subplot(1,2,1);>> imshow(y1)>> title('原图像');>> subplot(1,2,2);>> imhist(y1) %原图像直方图>> title('原图像直方图');>> y2=histeq(y1);>> figure(2)>> subplot(1,2,1);>> imshow(y2)>> title('均衡化后的图像');>> subplot(1,2,2);>> imhist(y2) %均衡化后的直方图>> title('均衡化后的直方图'); 3. I=imread('testpat1.png');J=double(I);%分别设置3种不同的滤波半径D1=15;D2=30;D3=50;%傅里叶变换并中心化Fuv=fftshift(fft2(J));[M,N]=size(Fuv);%确定傅里叶变换的原点xo=floor(M/2);yo=floor(N/2);%分别求IHPFfor i=1:Mfor j=1:ND=sqrt((i-xo)^2+(j-yo)^2);if(D>=D1)h1(i,j)=1;elseh1(i,j)=0;endif(D>=D2)h2(i,j)=1;elseh2(i,j)=0;endif(D>=D3)h3(i,j)=1;elseh3(i,j)=0;endendend%滤波矩阵点乘Guv1=h1.*Fuv;Guv2=h2.*Fuv;Guv3=h3.*Fuv;%傅里叶逆变换g1=ifftshift(Guv1);g1=uint8(real(ifft2(g1)));g2=ifftshift(Guv2);g2=uint8(real(ifft2(g2)));g3=ifftshift(Guv3);g3=uint8(real(ifft2(g3)));%分别显示各个图像subplot(2,2,1);imshow(I);title('原图像') subplot(2,2,2);imshow(g1);title('IHPF D0=15'); subplot(2,2,3);imshow(g2);title('IHPF D0=30'); subplot(2,2,4);imshow(g3);title('IHPF D0=50');。
数字图像处理灰度实验

数字图像处理实验报告学院:专业:姓名:学号:直方图和直方图均衡化一、实验目的1. 改善图像的视觉,提高清晰度;2. 增强人们感兴趣部分,到视觉效果更好的图像,以提高图像的可懂度。
3、增强直方图均衡化的认识和了解二、实验原理直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。
设非均匀直方图分布函数P r (r )经转换函数s=T (r )转化为均匀直方图分布函数P s (s)的情况,r 为变化前的归一化灰度级,0≤r ≤1. T (r )为转换函数, s=T (r )为变化后的归一化灰度级,则T (r )应满足以下条件:(1)在0≤r ≤1,范围内是一个单值单增函数。
(2)对于0≤r ≤1,对应有0≤s=T (r )≤1.保证变换后像素灰度级仍在允许范围内。
在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出fk 到gk 的灰度映射关系。
在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化三、实验主要内容1、统计原始图像的直方图,求出2、用累积分布函数作变换,求变换后的新灰度; 3、用新灰度代替旧灰度,求出,这一步是近似的,力求合理,同时把灰度相等的或相近的合在一起。
四、实验程序及结果1、实验程序#include<stdio.h>#include<math.h>#include<stdlib.h>void main(){ int c,i=0,j=0,y;long sum=0,su=0,k=0,l=0,t=0,h=0;static inta[256],a1[256],b[256],s[256],d[256][256],d1[65536],B[256][256],d2[655 36];FILE *fp,*fp1;char filename[20],filename1[20];double p1[256],p2[256];printf(" 输入文件名:");scanf("%s",filename);printf(" 输入新的文件名:");scanf("%s",filename1);if ((fp=fopen(filename,"rb"))==0){printf("不能打开文件\n");exit(0);}fp1=fopen(filename1,"w");while(!feof(fp)){c=fgetc(fp);a[c]++; }rewind(fp);while(!feof(fp)){c=fgetc(fp);d2[t]=c;t++;}t=0;for(i=0;i<256;i++)for(j=0;j<256;j++){B[i][j]=d2[t];t++;}for(i=0;i<256;i++)printf("%d\t",a[i]);printf("\n");for(i=0;i<256;i++){sum=sum+a[i];}printf("%d\n",sum);for(i=0;i<256;i++)p1[i]=a[i]/65536.0;}p2[0]=p1[0];for(i=1;i<256;i++){p2[i]=p2[i-1]+p1[i];}for(i=0;i<256;i++){s[i]=(int)(p2[i]*255+0.5);}for(i=0;i<256;i++)for(j=0;j<256;j++){d[i][j]=0;}for(i=0;i<256;i++){ for(j=0;j<256;j++){ y=B[i][j];d[i][j]=s[y];}}for(i=0;i<256;i++)for(j=0;j<256;j++){d1[h]=d[i][j];h++;}for(i=0;i<256;i++){b[i]=0;}for(i=0;i<256;i++){ for(j=0;j<256;j++)if(i==s[j])b[i]=b[i]+a[j];}printf("输出\n");for(i=0;i<255;i++){printf("%d\t",b[i]);printf("\n");for(i=0;i<256;i++){su=su+b[i];}printf("%d\n",su);for(h=0;h<65536;h++){fputc(d1[h],fp1);}printf("新文件已保存\n");fclose(fp);fclose(fp1);}2、实验结果五、结果分析本次实验通过对图像进行均衡化处理,即把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,也就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同,然而这样做却使图像的灰度值减少,甚至细节消失,而部分图像的对比度过分增强,直方图有高峰,影响了图像的实际效果。
数字图像处理实验报告

数字图像处理实验报告指导老师:***小组成员:刘立超 0710210230郑琳 0710210109南京理工大学自动化学院2010年12月1 图像变换(1)DCT 变换公式:①1维DCT 变换:1D 正变换1D 反变换f x = 1N F 0 + 2N F u N−1u =1cos 2x +1 uπ2N②2维DCT 变换:2D 正变换:2D 反变换:其中:c x = 1/ 2,x =01,x ≠0(2)C++文件中函数的参量形式分别为: ①DCT 变换输入参数:int height :图像高(行数) int width :图像宽(列数)unsigned char * input_image :读入的图像数据,对于灰度图像大小为WxH()110(0)()21()()cos 2N x F f x x F f x Nμπμ-=-==+=∑∑∑-=-=++=1010222])12(cos[])12(cos[),()()(),(M x N y M N MNc y x y x f c c F υμυμυμππ∑∑-=-=++=1010222])12(cos[])12(cos[),()()(),(M N M N c MNy x F c c y x f μυππυμυμυμ字节;unsigned char * output:处理后的图像数据,对于灰度图像大小为WxH字节int dimention :1--一维DCT 2--二维DCT函数说明:void DCT(unsigned char * input_image, double * output,int height, int width,int dimention)②DCT逆变换输入参数:int height:图像高(行数)int width:图像宽(列数)unsigned char * input_image:DCT数据;unsigned char * output:处理后的数据;int dimention :1-一维IDCT 2--二维IDCT函数说明:void IDCT(double * input_image, double * output,int height, int width,intdimention)(3)使用上述的函数对图像进行变换将变换结果使用log(1+|DCT()|)校正,并用vi工具进行观察,得到的源图像和变换后的图像如图1-1所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.灰度变换与空间滤波一种成熟的医学技术被用于检测电子显微镜生成的某类图像。
为简化检测任务,技术决定采用数字图像处理技术。
发现了如下问题:(1)明亮且孤立的点是不感兴趣的点;(2)清晰度不够,特别是边缘区域不明显;(3)一些图像的对比度不够;(4)技术人员发现某些关键的信息只在灰度值为I1-I2的范围,因此,技术人员想保留I1-I2区间范围的图像,将其余灰度值显示为黑色。
(5)将处理后的I1-I2范围内的图像,线性扩展到0-255灰度,以适应于液晶显示器的显示。
请结合本章的数字图像处理处理,帮助技术人员解决这些问题。
1.1问题分析及多种方法提出(1)明亮且孤立的点是不够感兴趣的点对于明亮且孤立的点,其应为脉冲且灰度值为255(uint8)噪声,即盐噪声,为此,首先对下载的细胞图像增加盐噪声,再选择不同滤波方式进行滤除。
均值滤波:均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。
优点:速度快,实现简单;缺点:均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。
其公式如下:使用矩阵表示该滤波器则为:中值滤波:滤除盐噪声首选的方法应为中值滤波,中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。
其过程为:a 、存储像素1,像素2.....像素9的值;b 、对像素值进行排序操作;c 、像素5的值即为数组排序后的中值。
优点:由于中值滤波本身为一种利用统计排序方法进行的非线性滤波方法,故可以滤除在排列矩阵两边分布的脉冲噪声,并较好的保留图像的细节信息。
缺点:当噪声密度较大时,使用中值滤波后,仍然会有较多的噪声点出现。
自适应中值滤波:自适应的中值滤波器也需要一个矩形的窗口xy S ,和常规中值滤波器不同的是这个窗口的大小会在滤波处理的过程中进行改变(增大)。
需要注意的是,滤波器的输出是一个像素值,该值用来替换点),(y x 处的像素值,点),(y x 是滤波窗口的中心位置。
其涉及到以下几个参数:其计算过程如下:常规的中值滤波器,在噪声的密度不是很大的情况下(根据经验,噪声的出现的概率小于0.2),效果不错。
但是当概率出现的概率较高时,常规的中值滤波处理后,仍然具有噪声点,并丢失了细节和边缘,效果不是很好。
优点:自适应滤波器不但能够滤除概率较大的椒盐噪声,而且能够更好的保护图像的细节,这是常规的中值滤波器做不到的。
缺点:实现复杂,运行时间长。
(2)图像本身清晰度不够,特别是边缘区域不够明显对于图像清晰度不够,边缘区域不够明显的情况,应考虑使用图像锐化算法对图像边缘区域进行增强,以强调图像的边缘与细节。
为验证强调图像边缘与细节的最佳算法,我主要运用了拉普拉斯算子,sobel算子,prewitt算子,roberts算子对图像边缘进行了增强。
(3)一些图像的对比度不够当图片自身对比对不够时,应使用对比度增强的方法对图像进行对比度增强。
直方图均衡化:直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
优点:对于背景和前景都太亮或者太暗的图像非常有用,且计算量不大。
缺点:变换后图像的灰度级减少,某些细节消失;某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。
灰度分段线性变换:分段线性变换函数可以增强原图各部分的反差,即增强输入图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。
优点:形式可以任意合成,增强输入图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。
缺点:是需要更多的用户输入。
(4)技术人员发现某些关键的信息只在灰度值为I1-I2的范围,因此,技术人员想保留I1-I2区间范围的图像,将其余灰度值显示为黑色。
应提取目标区域的灰度值特性,将图像进行二值化,即可保留范围在I1-I2区间范围的图像,将其余灰度值显示为黑色。
(5)将处理后的I1-I2范围内的图像,线性扩展到0-255灰度,以适应于液晶显示器的显示。
使用灰度线性拉伸的方法,将图像由I1-I2范围内线性扩展到0-255灰度。
1.2处理结果图1 增加盐噪声的原始细胞图像在网上下载了一张细胞图像,并对其加了盐噪声,模拟题目中所要求的明亮且孤立的点。
为了验证可滤除明亮且孤立的点的最佳方法,我选取了高斯滤波、均值滤波、中值滤波、自适应中值滤波,并使用MATLAB编写了函数代码(非直接使用MATLAB 自带函数程序),对原始图像进行了处理,处理结果如上图所示。
高斯滤波几乎对噪声没有作用,故高斯滤波并不适合去除明亮且孤立的点;使用均值滤波可以使原有噪声变得不那么“明亮”(求了平均值,故白色噪声灰度值减小),但也牺牲了图片本身的清晰度,故均值滤波效果一般;使用中值滤波可以使用矩阵内中值代替灰度值极大或极小的点,大部分孤立且明亮的点均被滤除,故中值滤波处理效果较优,但中值滤波模板大小固定并不利于取得最佳结果(模板太小,不能有效滤除全部噪声;模板太大,运算时间变慢,图像细节信息减少);使用自适应中值滤波可以很好的弥补中值滤波自身的缺点,自适应中值滤波使用噪声敏感度判断所需模板大小,由处理结果可以看出,与中值滤波相比,自适应中值滤波所得结果边界更清晰,图像细节信息更丰富,故自适应中值滤波法对明亮且孤立的点处理效果最优。
图2 采用不同滤波方法滤除明亮孤立的点图3 原图与直方图均衡化后的直方图上图为原图像与使用直方图均衡化(64)后的结果,可以看出,直方图均衡化后图像的灰度信息更丰富。
图4 对原图进行对比度增强的结果、上图为采用直方图均衡化与灰度线性拉伸进行对比度增强的结果。
其中,灰度线性拉伸算法是自己编写的。
采用直方图均衡化后,细菌与背景可以很好的分离开,但是背景也因此变得杂乱,不符合人眼的观察习惯,故直方图均衡化对于对比度增强效果一般;采用灰度线性拉伸法时,由于背景灰度值约为230上下,细菌灰度值约为150上下,因此选择以170,230为拐点对原图进行灰度线性拉伸,如图整幅图像的对比度得到了有效提升,且背景干净均匀,与原图像除对比度外无较大差异,故使用灰度线性拉伸法进行对比度增强最优。
图5 使用不同算子对边缘进行增强图5为使用不同算子对边缘进行增强的结果,由图可以看出,prewitt算子对边缘增强的效果最优。
图6图7分别是二值化的结果与灰度线性扩展的结果。
图6 二值化的结果图7 线性扩展clear;clc;close all;%读入一副白细胞图像并将其转为灰度图像path1='白细胞.jpg';img=imread(path1);img=rgb2gray(img);%为图像加上盐噪声,模拟孤立且明亮的点img=imnoise(img,'salt & pepper',0.1);[M,N]=size(img);for i=1:Mfor j=1:Nif(img(i,j)==0)img(i,j)=255;endendendimshow(img),title('原始细胞图像');%对图像进行高斯滤波g_img=guass_filter(img,[3 3],0.2);figure(2),imshow(g_img,[]),title('使用高斯滤波进行处理后的结果');%并未有效滤除图像中孤立明亮的点,说明该算法对盐噪声去除效果差%对图像进行均值滤波a_img=average_filter(img,5);figure(3),imshow(a_img),title('使用均值滤波进行处理后的结果');%虽然有效去除了孤立明亮的点,但图像的清晰度明显下降,不利于后续的图像分割或者边缘提取等操作%对图像进行中值滤波m_img=median_filter(img,5);figure(4),imshow(m_img),title('使用中值滤波进行处理后的结果');%对图像进行自适应中值滤波ad_img=adp_median(img,19);figure(5),imshow(ad_img),title('使用自适应中值滤波进行处理后的结果');========================================================= average_filter.mfunction [ img ] = average_filter( image, m )%----------------------------------------------%作者:%日期:2018.5.29%均值滤波%输入:%image:原图%m:模板的大小3*3的模板,m=3%输出:%img:均值滤波处理后的图像%All rights reserved~%----------------------------------------------if(rem(m,2)==0)error('parameter2 must be an odd number!')endn = m;[ height, width ] = size(image);x1 = double(image);x2 = x1;for i = 1: height-n+1for j = 1:width-n+1mb = x1( i:(i+n-1), j:(j+n-1) );mb = mb(:);mm = mean(mb);x2( i+(n-1)/2, j+(n-1)/2 ) = mm;endendimg = uint8(x2);end=========================================================gray_ linner.mfunction [ img_gl ] = gray_linner( image, fa,fb,ga,gb )%作者:%日期:2018.5.29% fa; 横坐标,即目标灰度区间% fb;%% ga; 纵坐标, 即拉伸后目标灰度区间% gb;%All rights reserved~k1 = ga/fa;k2 = (gb-ga)/(fb-fa);k3 = (255-gb)/(255-fb);%3, 求拉伸后灰度值[row,col] = size(image);img_gl= zeros(row,col);%默认g 为double。