数字图像处理软件开发设计报告.docx
- 格式:docx
- 大小:922.88 KB
- 文档页数:50
数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
《数字图像处理上机》实验报告班级:电信1101姓名:XXXXXX学号:0703110107数字图像处理上机实验1、实验目的了解matlab软件/语言,学会使用matlab的图像处理工具箱(Image Processing Toolbox),使学生初步具备使用该软件处理图像信息的能力,并能够利用该软件完成本课程规定的其他实验和作业。
熟悉常用的图像文件格式与格式转换;熟悉图像矩阵的显示方法(灰度、索引、黑白、彩色);熟悉图像矩阵的格式转换。
,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力.2、实验要求学生应当基本掌握matlab的操作,掌握matlab图像处理工具箱中最常用的函数用法。
练习图像读写命令imread和imwrite并进行图像文件格式之间的转换。
学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。
3、实验内容及步骤1、图像的显示与格式转换(1)学习matlab的基本操作;(2)使用imread函数读入图像;(3)使用figure函数创建窗口;(4)使用image或imshow函数显示图像;(5)使用colorbar函数在图像的右侧显示图像的亮度条。
2、图像的滤波(1) 考察平均滤波器对高斯噪声污染的图象去噪效果;(2) 考察中值滤波器对高斯噪声污染的图象去噪效果;(3) 考察平均滤波器对椒盐噪声污染的图象去噪效果;(4) 考察中值滤波器对椒盐噪声污染的图象去噪效果。
(5) 考察滤波器模板大小对平均滤波器滤波效果的影响;(6) 考察滤波器模板大小对中值滤波器滤波效果的影响;3、图像的频域变换在Matlab workspace中生成一幅大小为256×256像素的8位灰度图, 背景为黑色,中心有一个宽80像素高40像素的白色矩形。
《数字图象处理》课程项目实施报告题目: 人脸面部自动定位与分割 __________组号: _______________________________________任课教师: _________________________________组长: ________________成员:________________成员:________________成员:________________联系方式:__________________________二O—五年一月十四日星期三目录目录 (I)图目录................................................................ I II —项目介绍 (1)1.1概述 (1)1.2丁力自匕•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 11.3实施要求 (1)二主要设计思想 (2)2」前期准备 (2)2.2人脸肤色区域检测 (2)2.2.1方法一 (2)2.2.2方法二 (2)2.3非人脸区域判别 (3)2.3.1判别规则 (3)2.4脖子区域判别 (3)2.5五官识别-积分投影 (4)三主要实施过程 (4)3.1单人 (4)3.2多人 (7)四结果分析 (8)4」肤色检测 (8)4.1.1方法一 (8)4.1.2方法二 (8)4.1.3肤色检测阶段总结 (9)4.2去除非人脸区域 (9)4.2.1单脸 (9)4.2.2多脸 (9)4.3五官分割 (9)4.3.1眼 (9)4.3.2鼻、嘴 (10)参考文献 (11)参考代码 (12)4.4主程序 (12)4.5同态滤波 (17)4.6肤色检测-简易高斯模型 (19)4.7切割非脸区域 (21)4.8条件判断 (23)图目录Figure 1 (9)Figure 2 (9)Figure 3 (10)Figure 4 (10)Figure 5 (11)Figure 6 (12)Figure 7 (14)项目介绍图像分割是图像处理的主要LI标,本项U综合利用图像采集、图像增强、彩色图像处理、图像分割等知识,根据人脸肤色检测及脸部五官形状,设讣实现人脸照片中的人脸面部检测与五官分割。
实验1直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备:1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果:观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码:I=imread('coins.png');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验2 均值滤波一.实验目的1.熟悉matlab图像处理工具箱及均值滤波函数的使用;2.理解和掌握3*3均值滤波的方法和应用;二.实验设备:1.PC机一台;2.软件matlab三.程序设计在matlab环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。
《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。
在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。
首先,我们进行了图像的读取和显示实验。
通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。
这为我们后续的实验奠定了基础。
同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。
这使我们能够更好地理解后续实验中的算法和操作。
接下来,我们进行了图像的灰度化实验。
灰度化是将彩色图像转换为灰度图像的过程。
在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。
通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。
随后,我们进行了图像的直方图均衡化实验。
直方图均衡化是一种用于增强图像对比度的方法。
在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。
通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。
在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。
滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。
在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。
通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。
此外,我们还进行了图像的边缘检测实验。
边缘检测是一种用于提取图像边缘信息的方法。
在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。
通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。
最后,我们进行了图像的压缩实验。
图像压缩是一种将图像数据进行压缩以减小文件大小的方法。
数字图像处理设计报告【设计目的】配合《数字图像处理》课程的教学,使学生能巩固和加深对数字图像处理基础理论和基本知识的理解;掌握使用图像处理软件处理图像基本思想和方法;提高学生对图像处理方面的实际问题的应对能力并将所学知识在实践中巩固。
【设计要求】1.按照题目的要求,简要介绍算法,并对算法进行分析;2.用MATLAB完成算法代码(不能利用MATLAB自身的图像处理函数完成具体算法,读写和显示可以利用MATLAB函数),注释要清晰;3.给出代码运行的结果,并对结论进行总结;4.每人可选一个给出的题目或自己感兴趣的题目,按照上面要求上交报告,内容不得少于5页A4纸。
【所选题目】用直方图均衡化一幅8位的灰度图像【设计环境】MATLAB7.1,所选图片为彩色动画图片,大小为1024*666*24b【算法介绍和分析】1、算法概述:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
2、算法分析:直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。
设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。
在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):(1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。
这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。
1.课程设计目的1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。
2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。
2.课程设计内容及实现、二维快速傅立叶变换:本项目的重点是:这个项目的目的是开发一个2-D FFT程序“包”,将用于在其他几个项目。
您的实现必须有能力:(a)乘以(-1),x + y的中心变换输入图像进行滤波。
(b) 一个真正的函数相乘所得到的(复杂的)的阵列(在这个意义上的实系数乘以变换的实部和虚部)。
回想一下,对相应的元件上完成两幅图像的乘法。
(c) 计算傅立叶逆变换。
(d) 结果乘以(-1)x + y的实部。
(e) 计算频谱。
基本上,这个项目实现了图。
如果您正在使用MATLAB,那么您的傅立叶变换程序将不会受到限制,其大小是2的整数次幂的图像。
如果要实现自己的计划,那么您所使用的FFT 例程可能被限制到2的整数次幂。
在这种情况下,你可能需要放大或缩小图像到适当的大小,使用你的程序开发项目02-04逼近:为了简化这个和以下的工程(除项目04-05),您可以忽略图像填充(4.6.3节)。
虽然你的结果不会完全正确,将获得显着的简化,不仅在图像的大小,而且在需要裁剪的最终结果。
由这种近似的原则将不会受到影响结果如下:主要代码f=imread('(a).jpg');H=imread('(a).jpg');subplot(3,2,1);imshow(f);title('(a)原图像');[M1,N1]=size(f);f=im2double(f);[M2,N2]=size(H);H=im2double(H); %把灰度图像I1的数据类型转换成转换成双精度浮点类型for x=1:M1for y=1:N1f(x,y)=(-1)^(x+y)*f(x,y); %用(-1)^(x+y)乘以输入图像,来实现中心化变换endendF=fft2(f); %使用函数fft2可计算傅立叶变换subplot(3,2,3);imshow(F);title('(b)傅立叶变换的图像');if(M2==1)&&(N2==1)G=F(x,y)*H(x,y);elseif((M1==M2)&&(N1==N2))for x=1:M1for y=1:N1G(x,y)=F(x,y)*H(x,y);endendelseerror('输入图像有误','ERROR');end %通过两个图像的乘法程序,实现对相应元素的相乘g=ifft2(G);subplot(3,2,4);imshow(g);title('(c)傅立叶逆变换的图像');for x=1:M1for y=1:N1g(x,y)=(-1)^(x+y)*g(x,y);endendg=real(g);S=log(1+abs(F)); %计算傅立叶幅度谱并做对数变换subplot(3,2,5);plot(S); %二维图像显示幅度谱title('(d)二维图像显示幅度谱');Q=angle(F); %计算傅立叶变换相位谱subplot(3,2,6);plot(Q);title('(e)二维图像显示相位谱'); %二维图像显示相位谱结果截图图1 傅里叶变换及频谱图结果分析:图1中(a)是原始灰度图像,对原图进行傅里叶变换,用(-1)^(x+y)乘以输入图像,来实现中心化变换得到(b),(c)为傅里叶变换的逆变换得到的图像。
数字图像处理课程设计报告姓名:宋东洋、祁飞、冯登科学号:20137750342、20137750336、20137750309班级:软件开发.NET 3班设计题目:手写体数字识别教师:庞海波老师提交日期:2015年12月25日一、设计内容:主题:《手写体数字识别》详细说明:读入手写体数字图片,选择要识别的数字然后通过寻找数字边界将图像裁剪的边缘,然后生成裁剪后图像的二进制图像,并将其转换成5﹡7的图像,然后进行特征提取,运行Simulink模型识别数字。
二、现实意义:手写体数字的识别有着非常广泛的应用(如:邮政编码、统计报表、财务报表、银行票据等等)。
三、涉及知识内容:1、边界查找2、二值化3、Simulink模型四、实例分析及截图效果:(1)代码显示:1、程序中定义图像变量说明(1)S--------------------------------------------------------------原图变量; (2)img_crop----------------------------------------------------选择的图象; (3)imgGray-----------------------------------------------------灰度图像变量(4)BW-----------------------------------------------------------二值化图像;(5)charvec-----------------------------------------------------5*7图像变量;2、实现代码:Index.mfunction varargout = charGUI(varargin)% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @charGUI_OpeningFcn, ...'gui_OutputFcn', @charGUI_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before charGUI is made visible.function charGUI_OpeningFcn(hObject, eventdata, handles, varargin) load data;assignin('base','net',net);handles.output = hObject;guidata(hObject, handles);% --- Outputs from this function are returned to the command line. function varargout = charGUI_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;% --- Executes on button press in pbLoad.function pbLoad_Callback(hObject, eventdata, handles)[filename, pathname] = uigetfile({'*.bmp';'*.jpg';'*.gif';'*.*'}, 'Pick an Image File');S = imread([pathname,filename]);axes(handles.axes1);imshow(S);handles.S = S;guidata(hObject, handles);% --- Executes on button press in pbSelect.function pbSelect_Callback(hObject, eventdata, handles)S = handles.S;axes(handles.axes1);img_crop = imcrop(S);axes(handles.axes2);imshow(img_crop);handles.img_crop = img_crop;guidata(hObject, handles);% --- Executes on button press in pbPreprocess.function pbPreprocess_Callback(hObject, eventdata, handles) img_crop = handles.img_crop;imgGray = rgb2gray(img_crop);bw = im2bw(img_crop,graythresh(imgGray));axes(handles.axes3);imshow(bw);bw2 = edu_imgcrop(bw);axes(handles.axes4);imshow(bw2);handles.bw2 = bw2;guidata(hObject, handles);% --- Executes on button press in pbExtract.function pbExtract_Callback(hObject, eventdata, handles) bw2 = handles.bw2;charvec = edu_imgresize(bw2);axes(handles.axes5);plotchar(charvec);handles.charvec = charvec;guidata(hObject, handles);% --- Executes on button press in pbRecognize.function pbRecognize_Callback(hObject, eventdata, handles) charvec = handles.charvec;selected_net = get(handles.editNN,'string');selected_net = evalin('base',selected_net);result = sim(selected_net,charvec);[val, num] = max(result);set(handles.editResult, 'string',mod(num,10));% --- Executes on button press in pbNN.function pbNN_Callback(hObject, eventdata, handles)function editNN_Callback(hObject, eventdata, handles)% --- Executes during object creation, after setting all properties. function editNN_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction editResult_Callback(hObject, eventdata, handles)% --- Executes during object creation, after setting all properties. function editResult_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endedu_imgcrop.mfunction bw2 = edu_imgcrop(bw)% 求图像的边界[y2temp x2temp] = size(bw);x1=1;y1=1;x2=x2temp;y2=y2temp;% 寻找左侧空白空间cntB=1;while (sum(bw(:,cntB))==y2temp) x1=x1+1;cntB=cntB+1;end% 寻找右侧空白空间cntB=1;while (sum(bw(cntB,:))==x2temp) y1=y1+1;cntB=cntB+1;end% 寻找上边空白空间cntB=x2temp;while (sum(bw(:,cntB))==y2temp)x2=x2-1;cntB=cntB-1;end% 寻找下边空白空间cntB=y2temp;while (sum(bw(cntB,:))==x2temp)y2=y2-1;cntB=cntB-1;end% 将图像裁剪到边缘bw2=imcrop(bw,[x1,y1,(x2-x1),(y2-y1)]);edu_imgresize.mfunction lett = edu_imgresize(bw2)% 此功能将采取裁剪的二进制图像,并将其改为5×7 % 单个向量中的特征表示。
《数字图像处理》实验报告专业:软件工程*名:***学号: S********* 指导老师:***2019年 12 月 28 日信息学部软件学院目录实验一、BMP文件的读写 (1)1 实验目的与实验内容 (1)2 实验原理 (1)3 实验关键代码 (1)4 实验运行结果 (3)5 总结 (4)实验二、图像缩放 (4)1 实验目的及内容 (4)2 实验原理 (5)3 实验关键代码和运行结果 (6)4 结果分析 (8)实验三、直方图均衡 (9)1 实验目的及内容 (9)2 实验原理 (9)3 实验关键代码和实验结果 (10)4 思考题 (11)5结果分析 (12)实验四、图像滤波 (12)1 实验目的及内容 (12)2 图像滤波的原理 (12)3 实验关键代码及结果 (13)实验五、图像的灰度映射 (17)1 实验目的及内容 (17)2 实验关键代码及结果 (17)3 不同参数的变换结果 (20)附录一 (17)实验要求:用 c/c++语言编程实现以下功能实验环境:Windows10开发工具:CodeBlocks实验一、BMP文件的读写1 实验目的与实验内容1.1灰度 BMP 图像的读写:(1) 读入 lena.bmp 文件;(2) 通过文件内容得出文件大小,位图数据起始字节,图像长、宽以及每像素的位数等信息;(3) 提取出原图像中的位图数据,另存为 lena.raw, 并通过 photoshop 打开该文件,查看所读取的数据。
(4)仅取原始图像左上角 1/4 的数据,另存一个 lenas.bmp 图像,在photoshop 中打开查看效果。
1.2 彩色 BMP 图像读写(1) 读入文件 lena_C.bmp 文件;(2) 通过文件内容得出文件大小,位图数据起始字节,图像长、宽以及每像素的位数等信息;(3) 提取出原图像中的位图数据,另存为 lena_C.raw, 并通过 photoshop 打开该文件,查看所读取的数据。
大学数字图像处理实验报告设计题目:数字图像处理专业名称:软件工程班级: 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.通过本次实验,了解和熟悉 matlab 的实验环境,掌握图片的读取、显示、存储的方法。
2. 利用 imread() 函数读取一幅图像,假设其名为lily.tif,存入一个数组中。
3.利用 imshow() 函数来显示这幅图像。
二、实验原理(技术探讨)1.在 matlab 环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
读取图像 subplot(1,2,1),imshow(I)%输出图像title('原始图像 ')% 在原始图像中加标题2.启动 matlab 双击桌面 matlab 图标启动 matlab 环境;在matlab 命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用 matlab 自带的图像,如 :cameraman 图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;浏览源程序并理解含义;运行,观察显示结果;结束运行,退出三、实验程序及结果1.实验程序I=imread( ' 实验一 .jpg' );x=rgb2gray(I);figure(1)subplot(1,2,1);imshow(I);title(' 原始图像 ' );subplot(1,2,2);imshow(x);title(' 灰度图像 ' );2.实验结果四、结果分析通过本实验,我学会了用 Matlab7.0 对图像进行读取、存储、显示的节本操作。
实验二、图像的灰度变换、取反和二值化处理一、实验目的和内容1.熟悉 MATLAB软件开发环境,掌握读、写图像的基本方法。
2.理解图像灰度变换在图像增强的作用,掌握图像的灰度线性变换和非线性变换方法。
3.掌握绘制灰度直方图的方法,掌握灰度直方图的灰度变换及二值化的方法。
二、实验原理(技术探讨)1.图像的灰度化处理的基本原理将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。
彩色图像中的每个像素的颜色有R、G、B 三个分量决定,而每个分量有255 中值可取,这样一个像素点可以有1600 多万( 255*255*255 )的颜色的变化范围。
而灰度图像是R、G、B 三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255 种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。
灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。
图像的灰度化处理可用两种方法来实现。
2.图像的二值化处理就是讲图像上的点的灰度置为 0 或 255,也就是讲整个图像呈现出明显的黑白效果。
即将 256 个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为 0 或 255 的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。
为了得到理想的二值图像,一般采用封闭、连通的边界定义不交叠的区域。
所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为 255 表示,否则这些像素点被排除在物体区域以外,灰度值为 0,表示背景或者例外的物体区域。
如果某特定物体在内部有均匀一致的灰度值,并且其处在一个具有其他等级灰度值的均匀背景下,使用阀值法就可以得到比较的分割效果。
如果物体同背景的差别表现不在灰度值上(比如纹理不同),可以将这个差别特征转换为灰度的差别,然后利用阀值选取技术来分割该图像。
动态调节阀值实现图像的二值化可动态观察其分割图像的具体结果。
三、实验程序及结果1. 实验程序%二值化I=imread(' 实验二thresh=graythresh(I); I1=im2bw(I,thresh); imshow(I1).jpg');%自动确定二值化值%对图像二值化lear all ;f=imread('f' figure(1) imshow(f); figure(2)imhist(f);ylim( 'auto'g=histeq(f,256); figure(3) imshow(g); figure(4)imhist(g);ylim( 'auto');%绘制图象););f 的直方图%对 f 进行直方图均衡,输出图象的灰度级数为256A=imread('trees.tif'figure(1);subplot(1,2,1);imshow(A););title(' 原图 ' );I=double(A);h=[-1 -1 -1;-1 8 -1;-1 -1 -1];J=conv2(I,h,'same');K=uint8(J);subplot(1,2,2);imshow(K);title(' 使用拉普拉斯算子锐化处理后的图' );2.实验结果二值化四、结果分析通过这次的实验,经过广泛查阅书籍和有关知识,掌握了很多不知道的知识,使我我对图像处理有了更深一步的了解。
同时我学到了灰度级越多,图像保存的信息越多,在一定程度上减少灰度级不会明显影响图像质量,但在灰度级过少的情况下图像会失真。
实验三、直方图均衡化一、实验目的和内容编程实现下列功能:读出存储的黑白灰度图象并显示,显示灰度直方图,对图象进行直方图均衡化处理,显示处理后图象及直方图,画出灰度变换曲线,并存储处理后图象。
二、实验原理(技术探讨)方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
直方图均衡化是一种自动调节图象对比度质量的算法,使用的方法是灰度级变换:s=T(r) 。
它的基本思想是通过灰度级 r 的概率密度函数,求出灰度级变换。
三、实验程序及结果1.程序clear all;f=imread( 'cameraman.tif');% 读入原图像figure(1)imshow(f);figure(2)imhist(f);%绘制图象 f 的直方图ylim( 'auto' );g=histeq(f,256);%对 f 进行直方图均衡,输出图象的灰度级数为256figure(3)imshow(g);figure(4)imhist(g);ylim( 'auto' );A=imread( 'trees.tif');figure(1);subplot(1,2,1);imshow(A);title(' 原图 ' );I=double(A);h=[-1 -1 -1;-1 8 -1;-1 -1 -1];J=conv2(I,h,'same' );K=uint8(J);subplot(1,2,2);imshow(K);title(' 使用拉普拉斯算子锐化处理后的图' );2.结果四、结果分析通过本次试验让我们看到直方图均衡化的效果,其实质就是通过减少图像的灰度级以换取对比度的增大。
通过实验加深了我们对于课本理论知识的理解和运用,提高了我们的学习效率和学习的积极性。
实验四:图像锐化一、实验目的和内容1.掌握图像锐化的概念。
2.掌握 Prewitt 算子对图像进行锐化的原理、过程。
3.熟悉 Matlab 编程。
4.利用 Prewitt 算子对图像进行锐化处理。
5.掌握 Maltab 中和图像锐化相关的函数。
二、实验原理(技术探讨)图像锐化处理是改善图像视觉效果的手段,用来对图像的轮廓或边缘进行增强,减弱或消除低分频率分量而不影响高频分量。
图像锐化处理的主要技术体现在空域和频域的高通滤波,而空域高通滤波主要用模版卷积来实现。
在图像处理中,一阶导数通过梯度来实现,因此利用一阶导数检测边缘点的方法就称为梯度算子法。
梯度值正比于像素之差。
对于一幅图像中突出的边缘区,其梯度值较大;在平滑区域梯度值小;对于灰度级为常数的区域,梯度为零。
三、实验程序及结果1.程序A=imread( 'b.jpg');figure(1);subplot(2,2,1);imshow(A);title(' 原图 ' );I=double(A);h=[1 1 1;1 -9 1;1 1 1];J=conv2(I,h,'same' );K=uint8(J);subplot(2,2,2);imshow(K+A);title(' 使用拉普拉斯算子锐化处理后的图' );B=double(A);h=[0 -1 0;-1 4 -1;0 -1 0];T=conv2(B,h,'same' );E=uint8(T);subplot(2,2,3);imshow(-E+A);title(' 使用拉普拉斯算子锐化处理后的图' )C=double(A);h=[-1 -1 -1;-1 8 -1;-1 -1 -1];D=conv2(C,h,'same' );F=uint8(D);subplot(2,2,4);imshow(-F+A);title(' 使用拉普拉斯算子锐化处理后的图' )C=double(A);h=[-1 -1 -1;-1 8 -1;-1 -1 -1];D=conv2(C,h,'same' );F=uint8(D);subplot(2,2,5);imshow(F);title(' 使用拉普拉斯算子锐化处理后的图' ) 2.结果四、结果分析通过本次试验我学到了数字图像处理中图像锐化应从水平和垂直两个方向进行,最后的锐化结果由水平和垂直锐化结果共同得到。