文档库 最新最全的文档下载
当前位置:文档库 › 实验3 图像的直方图均衡化

实验3 图像的直方图均衡化

实验3  图像的直方图均衡化
实验3  图像的直方图均衡化

实验3 图像的直方图均衡化

一、实验目的:理解直方图的概念,利用Matlab获取和绘制图像的直方图,并进行直方图均衡化处理。

二、实验内容:学习并应用imhist, histeq等函数进行直方图处理

三、实验要求:提交原图像和各种直方图曲线,以及按直方图处理后的图像。

四、实验步骤

1、生成并绘制图像的直方图

在处理图像直方图的工具箱中,核心函数是imhist,其基本语法为:h=imhist(f,b)。其中,f为输入图像,h为其直方图,b是用于形成直方图的灰度级的个数,默认值为256。例如,若我们要处理一幅uint8类图像并令b=2,则亮度范围被分成两部分:0至127和128至255。所得的直方图将有两个值:h(1)等于图像在区间[0,127]内的像素总数,h(2)等于图像在区间[128,255]内的像素总数。使用p=imhist(f,b)/numel(f)可以得到归一化直方图。函数numel(f)给出数组f中的元素个数(即图像中的像素数)。

(1)阅读imhist的帮助文件;

(2)读入一幅图像,使用imhist( )函数产生图像的直方图,分析它的直方图分布及反映图像的特点;

(3)使用imadjust( )函数产生图像的对比度图,并使用imhist( )函数产生两个图像的直方图,分析图像对比度变化后的

效果;

实验结果:

>> I=imread('C:\Documents and Settings\Administrator\桌面\实验\图像库\tif\boats720x576.tif');

>> J=histeq(I); %对原图像进行直方图均衡化处理

%对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅

subplot(2,2,1);imshow(I); %显示原图像

title('原图像'); %给原图像加标题名

subplot(2,2,2);imshow(J);

title('直方图均衡化后的图像') ;

subplot(2,2,3);

imhist(I,64); %将原图像直方图显示为64级灰度

title('原图像直方图') ; %给原图像直方图加标题名

subplot(2,2,4);

imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度

title('均衡变换后的直方图') ; %给均衡化后图像直方图加标题名

2、直方图均衡化

直方图均衡化由工具箱中的函数histeq实现,该函数语法为

g=histeq(f,nlev)。式中,f为输入图像,nlev是为输出图像指定的灰度级数。histeq中的默认值为nlev=64。一般来说,我们将nlev赋值为灰度级的最大可能数量(通常为256)。

读入一幅图像,使用histeq ( )函数均衡化图像,分析变化后图像的效果)。

实验结果:

function varargout = histeq_my(image)% HISTEQ_MY直方图均衡化函数

imageeq = zeros(size(image));

[hist,grayx] = imhist_my(image);% 归一化

histn = hist/numel(image);

histc = cumsum(histn);

L = intmax(class(image));

eval(['L = ' class(histc) '(L);'])

tk = floor(histc*(L - 1) + 0.5);

histeq = zeros(size(hist));

for k = 1:L

histeq(tk(k) + 1) = histeq(tk(k) + 1) + hist(k);

end% 图像灰度映射

for p = 1:size(imageeq,1)

for q = 1:size(imageeq,2)

imageeq(p,q) = tk(image(p,q) + 1);

end

end

imageeq = mat2gray(imageeq);

eval(['imageeq = im2' class(image) '(imageeq);'])% 输出

if nargout == 0

sub plot(221)

imshow(image)

title('原始图像')

subplot(222)

imshow(imageeq)

title('直方图均衡化后图像')

subplot(223)

stem(grayx,hist,'Marker','none');

xlim([0 max(grayx)]);

xlabel('灰度值')

ylabel('统计个数');

title('原始直方图')

subplot(224)

stem(grayx,histeq,'Marker','none');

xlim([0 max(grayx)]);

xlabel('灰度值')

ylabel('统计个数');

title('均衡化后直方图')

else

varargout = {imageeq,grayx,histeq,hist}; end

数字图像处理实验1

实验一 实验内容和步骤 练习图像的读取、显示和保存图像数据,步骤如下: (1)使用命令figure(1)开辟一个显示窗口 (2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示、二值图像和灰度图像,注上文字标题。 (3)保存转换后的灰度图像和二值图像 (4)在同一个窗口显示转换后的灰度图像的直方图 I=imread('BaboonRGB.bmp'); figure,imshow(I); I_gray=rgb2gray(I); figure,imshow(I_gray); I_2bw=Im2bw(I_gray); figure,imshow(I_2bw); subplot(1,3,1),imshow(I),title('RGB图像'); subplot(1,3,2),imshow(I_gray),title('灰度图像'); subplot(1,3,3),imshow(I_2bw),title('二值图像'); imwrite(I_gray,'Baboongray.png'); imwrite(I_2bw,'Baboon2bw.tif'); figure;imhist(I_gray);

RGB 图 像灰度图 像二值图 像 050100150200250 500 1000 1500 2000 2500 3000

(5)将原RGB 图像的R 、G 、B 三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R 、G 、B 分量的不同之处。 [A_RGB,MAP]=imread('BaboonRGB.bmp'); subplot(2,2,1),imshow(A_RGB),title('RGB'); subplot(2,2,2),imshow(A_RGB(:,:,1)),title('R'); subplot(2,2,3),imshow(A_RGB(:,:,2)),title('G'); subplot(2,2,4),imshow(A_RGB(:,:,3)),title('B'); (6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;A=imread('BaboonRGB.bmp'); figure(3),imshow(A),title('原图像'); B=imresize(A,1.5,'nearest'); figure(4),imshow(B),title('最邻近法') C=imresize(A,1.5,'bilinear'); ; figure(5),imshow(C),title('双线性插值'); D=imresize(A,1.5,'bicubic'); figure(6),imshow(D),title('双三次插值 '); RGB R G B

数字图像处理实验报告--直方图均衡化

数字图像处理实验报告 实验名称:直方图均衡化 : 班级: 学号: 专业:电子信息工程(2+2) 指导教师:华华 实验日期:2012年5月24日

直方图均衡化 图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图均衡化是最常见的间接对比度增强方法。直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。 直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度围的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度围的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。 缺点: 1)变换后图像的灰度级减少,某些细节消失; 2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。 这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。 直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态围从而可达到增强图像整体对比度的效果。设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数): (1)EQ(f)在0≤f≤L-1围是一个单值单增函数。这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。 (2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态围的一致性。 累积分布函数即可以满足上述两个条件,并且通过该函数可以完成将原图像f的分布转换成g的均匀分布。此时的直方图均衡化映射函数为: gk = EQ(fk) = (ni/n) = pf(fi) , (k=0,1,2,……,L-1) 上述求和区间为0到k,根据该方程可以由源图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值。在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出fk到gk的灰度映射关系。在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对

图像灰度变换实验报告

图像灰度变换报告 一.实验目的 1.学会使用Matlab ; 2.学会用Matlab 软件对图像进行灰度变换,观察采用各种不同灰度变换发法对最终图像效果的影响; 二.实验内容 1.熟悉Matlab 中的一些常用处理函数 读取图像:img=imread('filename'); //支持TIF,JPEG,GIF,BMP,PNG 等文件格式。 显示图像: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 表示输出图像指定的灰度级数。 2.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。 3 .产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤ r ≤ 0.65 1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。 4.产生灰度变换函数T2,使得: s = 5.用T2imwrite 保存处理后的新图像。 6.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。为简便起见,使用Matlab 中的imadjust 函数,最后用imwrite 保存处理后的新图像。 7.对circuit.jpg 图像实施反变换(Negative Transformation )。s =1-r; 使

数字图像处理实验三中值滤波和均值滤波实验报告

数字图像处理实验三中值滤波和均值滤波实验报告

数字图像处理实验三 均值滤波、中值滤波的计算机实现12281166 崔雪莹计科1202班 一、实验目的: 1)熟悉均值滤波、中值滤波处理的理论基础; 2)掌握均值滤波、中值滤波的计算机实现方法; 3)学习VC++ 6。0 的编程方法; 4)验证均值滤波、中值滤波处理理论; 5)观察均值滤波、中值滤波处理的结果。 二、实验的软、硬件平台: 硬件:微型图像处理系统,包括:主机, PC机;摄像机; 软件:操作系统:WINDOWS2000或WINDOWSXP应用软件:VC++ 6.0 三、实验内容: 1)握高级语言编程技术; 2)编制均值滤波、中值滤波处理程序的方法; 3)编译并生成可执行文件; 4)考察处理结果。 四、实验要求: 1)学习VC++确6。0 编程的步骤及流程; 2)编写均值滤波、中值滤波的程序;

3)编译并改错; 4)把该程序嵌入试验二给出的界面中(作适当修改); 5)提交程序及文档; 6)写出本次实验的体会。 五、实验结果截图 实验均值滤波采用的是3X3的方块,取周围的像素点取得其均值代替原像素点。边缘像素的处理方法是复制边缘的像素点,增加一个边框,计算里面的像素值得均值滤波。

六、实验体会 本次实验在前一次的实验基础上增加均值滤波和中值滤波,对于椒盐噪声的处理,发现中值滤波的效果更为好一点,而均值滤波是的整个图像变得模糊了一点,效果差异较大。本次实验更加增加了对数字图像处理的了解与学习。 七、实验程序代码注释及分析 // HistDemoADlg.h : 头文件 // #include "ImageWnd.h" #pragma once // CHistDemoADlg 对话框 class CHistDemoADlg : public CDialogEx { // 构造

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

图像工程概论实验报告——二值化直方图均衡化

图像工程概论 实验报告

课程报告1: 一、实验目的: 二、实验内容 把这幅图像分成同样大小的10幅人脸图片 然后分别对第一行5幅人脸图像的第3 第4 第5 第二行5幅人脸图像的第1 第5 进行如下处理: 1.进行大津法阈值分割的二值化处理 2.进行直方图均衡化处理 三、实验具体代码以及结果 (一)大津法阈值分割的二值化处理 1.实验代码 %图像分割部分 clear; clc; pic0=imread('G: \image\histogram matching.bmp'); figure(1),imshow(pic0); wdiv=5; hdiv=2; [hd,wd,l]=size(pic0);

sub_wd=floor(wd/wdiv); sub_hd=floor(hd/hdiv); for row=1:2 for col=1:5 pic1=pic0((row-1)*sub_hd+1:row*sub_hd+1,(col-1)*sub_wd+1:col*sub_ wd+1); figure(2),imshow(pic1); imwrite(pic1,['G: \image\'num2str(row) '-'num2str(col) '.jpg'],'jpg'); %存储图像 end end %————————图像处理部分 cd 'G:\pic' x1=imread('1-3.jpg'); %目标读取图像第一行第三幅人脸图像 x2=imread('1-4.jpg'); %第一行第四幅人脸图像 x3=imread('1-5.jpg'); %第一行第五幅人脸图像 x4=imread('2-1.jpg'); %第二行第一幅人脸图像 x5=imread('2-5.jpg'); %第二行第五幅人脸图像 %matlab 自动确定阈值的方法,大津法,类间方差 level1=graythresh(x1); level2=graythresh(x2); level3=graythresh(x3); level4=graythresh(x4); level5=graythresh(x5); %用得到的阈值直接对图像进行二值化处理并显示 BW1=im2bw(x1,level1); BW2=im2bw(x2,level2); BW3=im2bw(x3,level3); BW4=im2bw(x4,level4); BW5=im2bw(x5,level5); subplot(1,5,1),imshow(BW1); subplot(1,5,2),imshow(BW2); subplot(1,5,3),imshow(BW3); subplot(1,5,4),imshow(BW4); subplot(1,5,5),imshow(BW5); 2.实验结果显示 分割结果截图:

数字图像处理上机实验三

医学图像处理实验三1、计算图像的梯度,梯度值和梯度角。 I=imread('C:\Users\Administrator\Desktop\cat.jpg'); B=rgb2gray(I); C=double(B); e=1e-6;%10^-6 [dx,dy]=gradient(C);%计算梯度 G=sqrt(dx.*dx+dy.*dy);%梯度幅值 figure,imshow(uint8(G)),title('梯度图像'); pha=atan(dy./(dx+e)) figure,imshow(pha,[]) 图 1

图 2 梯度角图 2、计算图像边缘检测,用滤波器方式实现各种算子。 (1)Roberts算子 clear; I=imread('C:\Users\admin\Desktop\mao.jpg'); B=rgb2gray(I); [m,n]=size(B); nB=B; robertsnum=0;%经roberts算子计算得到的每一个像素的值robertsthreshold=0.6;%设定阈值 for j=1:m-1;%进行边界提取 for k=1:n-1 robertsnum=abs(B(j,k)-B(j+1,k+1))+abs(B(j+1,k)-B(j,k+1)); if(robertsnum>robertsthreshold) nB(j,k)=255; else nB(j,k)=0; end end end subplot(1,2,1);imshow(B);title('原图'); subplot(1,2,2);imshow(nB,[]);title('Robert算子处理后的图像');

数字图像处理实验 实验二

实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:

2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply

直方图均衡化

图像增强是数字图像处理的基本内容。遥感图像增强是为特定目的,突出遥感图像中的某些信息,削弱或除去某些不需要的信息,使图像更易判读。图像增强的实质是增强感兴趣目标和周围背景图像间的反差。它不能增加原始图像的信息,有时反而会损失一些信息。它也是计算机自动分类一种预处理方法。 目前常用的图像增强处理技术可以分为两 大类:空间域和频率域的处理。主要内容包括基于直方图的处理、图像平滑以及图像锐化等。空间域处理是指直接对图像进行各种运算以得到需要的增强结果。频率域处理是指先将空间域图像变换成频率域图像,然后在频率域中对图像的频谱进行处理,以达到增强图像的目的。 6.2.1 图像灰度的直方图 图像灰度直方图反映了一幅图像中灰度级 与其出现概率之间的关系。对于数字图像,由于图像空间坐标和灰度值都已离散化,可以统计出灰度等级的分布状况。数字图像的

灰度编码从0,1,2,…,2n-1(n为图像量化时的比特数),每一个灰度级的像元个数mi可以从图像中统计出来,整幅图像的像元数为M,则任意灰度级出现的频率为: (6-20) (6-21) 由2n个P值即可绘制出数字图像的灰度直方图,如图6-5。图像直方图随图像不同而不同,不同图像有不同的直方图。 图6-5数字图像直方图 灰度直方图可以看成是一个随机分布密度函数,其分布状态用灰度均值和标准差两个参数来衡量。灰度均值为: (6-22)

式中:为整幅图像灰度平均值; X ij为(i,j)处像元的灰度值; R为图像行数; L为图像列数; M=R*L为图像像元总数; 标准差: Xi:i处像元的灰度值 直方图分布状态不同,图像特征不同,如图6-6所示。

数字图像处理实验报告实验三

中南大学 数字图像处理实验报告实验三数学形态学及其应用

实验三 数学形态学及其应用 一.实验目的 1.了解二值形态学的基本运算 2.掌握基本形态学运算的实现 3.了解形态操作的应用 二.实验基本原理 腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。 膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。 二值形态学 I(x,y), T(i,j)为 0/1图像Θ 腐蚀:[]),(&),(),)((),(0,j i T j y i x I AND y x T I y x E m j i ++=Θ== 膨胀:[]),(&),(),)((),(0 ,j i T j y i x I OR y x T I y x D m j i ++=⊕== 灰度形态学T(i,j)可取10以外的值 腐蚀: []),(),(min ),)((),(1 ,0j i T j y i x I y x T I y x E m j i -++=Θ=-≤≤ 膨胀: []),(),(max ),)((),(1 ,0j i T j y i x I y x T I y x D m j i +++=⊕=-≤≤ 1.腐蚀Erosion: {}x B x B X x ?=Θ: 1B 删两边 2B 删右上 图5-1 剥去一层(皮) 2.膨胀Dilation: {}X B x B X x ↑⊕:= 1B 补两边 2B 补左下 图5-2 添上一层(漆) 3.开运算open :

B B X ⊕Θ=)(X B 4.闭close :∨ Θ⊕=B B X X B )( 5.HMT(Hit-Miss Transform:击中——击不中变换) 条件严格的模板匹配 ),(21T T T =模板由两部分组成。1T :物体,2T :背景。 {} C x x i X T X T X T X ??=?21, 图5-3 击不中变换示意图 性质: (1)φ=2T 时,1T X T X Θ=? (2))()()(21T X T X T X C Θ?Θ=? C T X T X )()(21Θ?Θ= )/()(21T X T X ΘΘ= 6.细化/粗化 (1)细化(Thin ) C T X X T X XoT )(/??=?= 去掉满足匹配条件的点。 图5-4 细化示意图 系统细化{}n B oB XoB T Xo ))(((21=, i B 是1-i B 旋转的结果(90?,180?,270?)共8种情况 适于细化的结构元素 1111000d d I = d d d L 10110 0= (2)粗化(Thick ) )(T X X T X ??=? 用(){}0,01=T (){}0,12=T 时,X X X T X =?=? X 21 1 1 2 3 T ? XoT X ? X X ?T X ΘT T ⊕

数字图像处理——彩色图像实验报告

6.3实验步骤 (1)对彩色图像的表达和显示 * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体 rgbcube(10,0,10); %从侧面观察彩色立方 rgbcube(10,10,10); %从对角线观察彩色立方体 %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %rgb图像转换成8色索引图像,不采用抖动方式 [X1,map1]=rgb2ind(f,8,'nodither'); figure,imshow(X1,map1); %采用抖动方式转换到8色索引图像 [X2,map2]=rgb2ind(f,8,'dither'); figure,imshow(X2,map2); %显示效果要好一些 g=rgb2gray(f); %f转换为灰度图像 g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像 figure,imshow(g1);%显示抖动处理后的二值图像 程序运行结果:

彩色立方体原图 不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像 灰度图像抖动处理后的二值图像

(2)彩色空间转换 f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %转换到NTSC彩色空间 ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息 %转换到HIS彩色空间 hsi_image=rgb2hsi(f); figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息 程序运行结果: 原图 转换到NTSC彩色空间

基于直方图均衡化的彩色图像增强

基于直方图均衡化的彩色图像增强 摘要:现实生活中经常遇到所照图片清晰度不好,亮度不够,能辨率低,这样就需要将图像进行处理以得到清晰度和亮度更好的图像。文章首先介绍彩色图像和图像增强的定义与方法,以及彩色图像转换为灰度图像的方法,然后对直方图均衡化作出解释,最后通过实验先将彩色图像转换为hsi 图像,并对hsi 图像中的i分量的灰度图像进行直方图均衡化的处理,再将经过处理后的hsi 图像还原成彩色图像,即可得到增强的彩色图像效果图。实现了通过直方图均衡化的处理得到彩色图像的增强。 关键词:彩色图像;灰度图像;图像增强;直方图均衡化;hsi 图像 中图分类号:tp751 文献标识码:a 文章编号:1009-3044(2013)04-0833-03 color image enhancement based on histogram equalization jiang dong-qin,li ming-dong (computer department, china west normal university,nanchong 637009,china) abstract: in the real world, the photographs that were took, which are lack of clarity and brightness, and visibilities are low. so there is need to deal with these photographs to get better clarity and brightness of pictures. in the article, at first, recommending the definitions and

数字图像处理实验三

数字图像处理实验报告 学院:电子信息与自动化 专业:电子信息工程 班级:120224 实验人:张文君(12022419) 同组人:姚朱晨(12022417)

实验三: 数字图像的频域增强:低通滤波 一.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解频域滤波的基本原理及方法。 3. 掌握进行图像的低通滤波的方法。 二.实验基本原理 频域增强是利用图像变换方法将原来的图像空间中的图像以某种形式转换到其他空间中,然后利用该空间的特有性质方便地进行图像处理,最后再转换回原来的图像空间中,从而得到处理后的图像。 频域增强的主要步骤是: 1.选择变换方法,将输入图像变换到频域空间。 2.在频域空间中,根据处理目的设计一个转移函数,并进行处理。 3.将所得结果用反变换得到增强的图像。 常用的频域增强方法有低通滤波和高通滤波。 低通滤波 图像的能量大部分集中在幅度谱的低频和中频部分,而图像的边缘和噪声对应于高频部分。因此能降低高频成分幅度的滤波器就能减弱噪声的影响。由卷积定理,在频域实现低通滤波的数学表达式: G (u ,v ) =H (u ,v )F (u ,v ) 1) 理想低通滤波器(ILPF ) { 0),u (0 ),(10)v ,u (≤>= v D v u D H 2) 巴特沃斯低通滤波器(BLPF ) n D v u D v u H 20),()12(11 ),(??? ? ??-+= 3)指数型低通滤波器(ELPF ) 2 0),(),(n D v u D e v u H ? ?????-= 三.实验内容与要求

平滑频域滤波 1) 设计理想低通滤波器、巴特沃斯低通滤波器和指数型低通滤波器,截止频率自选。 2) 读出cameraman.tif 这幅图像,加入椒盐躁声,分别采用理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器对其进行滤波(截止频率自选),再做反变换得到低通滤波后的空域图像。 四.实验程序 I=imread('cameraman.tif');%读入图像 figure; subplot(2,3,1),imshow(I); title('原图'); I=imnoise(I,'salt & pepper',0.02); %加入椒盐躁声 subplot(2,3,2),imshow(I); title('加入椒盐躁声图'); f=double(I); % 由于MATLAB 不支持unsigned int 型图像计算,故将图像数据变为double 型 g=fft2(f); % 傅里叶变换 g=fftshift(g); % 将傅里叶变化零频率搬移到频谱中间 [M,N]=size(g); % 确定图像大小,M 为行数,N 为列数 D0=100; %截止频率 m=fix(M/2); n=fix(N/2);% 确定傅里叶变化原点(即直流部分),并且数据向0 取整result=zeros(M,N); for i=1:1:M for j=1:1:N d=sqrt((i-m)^2+(j-n)^2);%计算D(u,v) if(d<=D0) h=1;%如果D(u,v)<=D0, H(u,v)=1 else h=0;%如果D(u,v)>D0, H(u,v)=0 end result(i,j)=h*g(i,j); end end result=ifftshift(result);% 傅里叶逆移频,由于之前做过fftshift J1=ifft2(result);% 傅里叶反变换 J2=uint8(real(J1));%提取J1 的实部,并将该数据定义为8 位无符号整数 subplot(2,3,3),imshow(J2) ; title('理想低通滤波图'); n=2;%二阶 D0=150; %截止频率 m=fix(M/2); n=fix(N/2);% 确定傅里叶变化原点(即直流部分),并且数据向0 取整result=zeros(M,N);

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 2015年6月18日

目录 实验一图像的读取、存储和显示 (2) 实验二图像直方图分析 (6) 实验三图像的滤波及增强 (15) 实验四噪声图像的复原 (19) 实验五图像的分割与边缘提取 (23) 附录1MATLAB简介 (27)

实验一图像的读取、存储和显示 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像的显示。 二、实验原理 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 三、实验设备 (1) PC计算机 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容及步骤 1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件设为flower.jpg语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;

亮图像和暗图像的直方图均衡化

一、亮图像和暗图像的直方图均衡化 原理及应用 由于许多原始图像的灰度经常分布在一个小范围内,不易观察分辨,通过直方图均衡化使图像灰度均匀分布,使一定范围内象元值的数量大致相等,以此加强细节,提高图像的清晰度,便于观察以及计算机进行分析处理 代码 clear; I=imread('F:\matlab\p1.jpg'); %读入图像 I=rgb2gray(I); %转换为灰度图像 high=histeq(I); %直方图均衡化,指定灰度级数n,缺省为64 subplot(2,2,1),imshow(I); %显示图像 subplot(2,2,2),imshow(high); subplot(2,2,3),imhist(I); subplot(2,2,4),imhist(high); 代码结果 图1 亮图像均衡化前后对比

图2 暗图像直方图均衡化前后对比 二、用频域高斯低通、高斯高通滤波器分别对图像进行平滑和锐化。 原理: 高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器,它用像素邻域的加权均值来代替该点的像素值,通过一系列傅里叶变换达到平滑或者锐化的效果。 代码: clear; clc I=imread('p3.jpg'); %读取图像 J=rgb2gray(I); %将图像变为二维灰度图象 f=double(J); %MATLAB的矩阵运算中要求所有的运算变量为double型 f=fft2(f);%二维的傅里叶变换 f=fftshift(f);%将中心从矩阵的原点移到矩阵的中心 [row,col]=size(f); d0=60; %截止频率为60,数值越小越平滑 row1=fix(row/2); col1=fix(col/2); for i=1:row %d0为60的高斯低通滤波器 for j=1:col d=sqrt((i-row1)^2+(j-col1)^2); h(i,j)=exp(-d^2/(2*d0^2)); % 若为高斯高通滤波器,达到锐化效果则h(i,j)=1-exp(-d^2/(2*d0^2)); g(i,j)=h(i,j)*f(i,j); end end

图像处理实验报告

重庆交通大学 学生实验报告 实验课程名称数字图像处理 开课实验室数学实验室 学院理学院年级信息与计算科学专业 2 班学生姓名李伟凯学号631122020203 开课时间2014 至2015 学年第 1 学期

实验(一)图像处理基础 ?实验目的 学习Matlab软件的图像处理工具箱,掌握常用的一些图像处理命令;通过编程实现几种简单的图像增强算法,加强对图像增强的理解。 ?实验内容 题目A.打开Matlab软件帮助,学习了解Matlab中图像处理工具箱的基本功能;题目B.掌握以下常见图像处理函数的使用: imread( ) imageinfo( ) imwrite( ) imopen( ) imclose( ) imshow( ) impixel( ) imresize( ) imadjust( ) imnoise( ) imrotate( ) im2bw( ) rgb2gray( ) 题目C.编程实现对图像的线性灰度拉伸y = ax + b,函数形式为:imstrech(I, a, b); 题目D.编程实现对图像进行直方图均衡化处理,并将实验结果与Matab中imhist 命令结果比较。 三、实验结果 1).基本图像处理函数的使用: I=imread('rice.png'); se = strel('disk',1); I_opened = imopen(I,se); %对边缘进行平滑 subplot(1,2,1), imshow(I), title('原始图像') subplot(1,2,2), imshow(I_opened), title('平滑图像') 原始图像平滑图像

数字图像处理实验报告3

实验三数字图像的空间域滤波 院(系):电气学院姓名:刘丽霞学号:200902050068 实验时间:2012/11/20 实验地点:A07-602 指导老师:李静 一、实验目的 1)掌握图像滤波的基本定义及目的。 2)理解空间域滤波的基本原理及方法。 3)掌握进行图像的空域滤波的方法。 二、实验环境 1)在MATLAB的环境下进行实验; 2)复制若干图形文件至MATLAB目录下work文件夹中。 三、实验方法 1.平滑空间滤波: 1)读出eight.tif这幅图像,给这幅图像分别加入椒盐噪声和高 斯噪声后并与前一张图显示在同一图像窗口中。 I1=imnoise(I,'salt & pepper',0.02); %加入椒盐噪声 I2=imnoise(I,'gaussian',0,0.005); %加入高斯噪声 2)对加入噪声图像选用不同的平滑(低通)模板做运算,对比不 同模板所形成的效果,要求在同一窗口中显示。 Hs = fspecial('sobel'); Sobel = imfilter(I,Hs,'replicate'); %选用不同的平滑模板 3)使用函数imfilter时,分别采用不同的填充方法(或边界选 项,如零填充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图像。 4)运用for循环,将加有椒盐噪声的图像进行10次,20次均值 滤波,查看其特点,显示均值处理后的图像。 II1=rgb2gray(I1); a=1/9.*[1 1 1 1 1 1

1 1 1]; b=conv2(a,II1); %均值处理 5)对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对 有噪声的图像做处理,要求在同一窗口中显示结果。 2.锐化空间滤波 读出moon.tif这幅图像,采用3×3的拉普拉斯算子w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1]对其进行滤波。 w =[1,1,1; 1,-8,1; 1,1,1]; K=conv2(T,w,'same');%3×3的拉普拉斯算子滤波 四、实验结果

数字图像处理实验一

数字图像处理—实验一 一.实验内容: 图像灰度变换 二.实验目的: 学会用Matlab软件对图像灰度进行变换;感受各种不同的灰度变换方法对最终图像效果的影响。 三.实验步骤: 1.获取实验用图像:rice.jpg. 使用imread函数将图像读入Matlab。 程序: clc;clear; figure; subplot(4,4,1); i = imread('rice.png'); i = im2double(i); imshow(i);title('1'); 2.产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤r ≤0.65

1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg进行处理,使用imwrite函数保存处理后的新图像。程序: subplot(4,4,2); r=[0:0.001:1]; s=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1 +0.3*(r-1)); plot(r,s);title('2p'); subplot(4,4,3); T1=[i<0.35].*i*0.3+[i<=0.65].*[i>=0.35].*(0.105+2.6333*(i-0.35))+[i>0.65].*( 1+0.3*(i-1)); imshow(T1);title('2i'); imwrite(T1,'rice_T1.jpg','jpg');

3.产生灰度变换函数T2,使得: 用T2对原图像rice.jpg进行处理,使用imwrite保存处理后的新图像。 %3 subplot(4,4,4); r = [0:0.001:1];

相关文档
相关文档 最新文档