数字图像处理 降噪滤波 大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学信息工程与自动化学院学生实验报告
(2015—2016学年第一学期)
课程名称:图形图像基础程序设计开课实验室: 2015年 12月 1 日
一、实验目的及内容
目的:掌握和熟悉Matlab编程环境及语言;掌握图像降噪算法和用途。
内容:
在课程教学和查阅相关文献资料的基础上,选择下面一个数字图像处理技术专题,实现相应算法进行仿真实验,并完成大作业报告。专题如下:
(1)图像增强处理技术;
(2)图像降噪处理技术。
2、题目分析
利用matlab的GUI程序设计一个简单实用的图像处理程序。该程序应具备图像处理的常用功能,以满足用户的使用。现设计程序有以下基本功能:
1)图像的读取和保存。
2)通过自己输入数值,实现图像的旋转。
3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。
4)能对图像加入各种噪声,
5)并通过几种滤波算法实现去噪并显示结果。
6)将图像转化成灰度图像。
3.总体设计
软件的总体设计界面布局如上图所示
分为显示区域与操作区域。
上边为显示区域:显示载入原图,以及通过处理后的图像。操作区域:通过功能键实现对图像的各种处理。
设计完成后运行的软件界面如下:
4、具体设计
现介绍各个功能模块的功能与实现。
4.1图像的读取和保存:
(1)利用matlab中“ uigetfile”、“imread”“imshow”实现图像文件的读取与显示:
实现代码:
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像');
if isequal(filename,0)|isequal(pathname,0)
errordlg('没有选中文件','出错');
return;
else
file=[pathname,filename];
global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作
S=file;
x=imread(file);
set(handles.axes1,'HandleVisibility','ON');
axes(handles.axes1);
imshow(x);
set(handles.axes1,'HandleVisibility','OFF');
axes(handles.axes2);
imshow(x);
handles.img=x;
guidata(hObject,handles);
end
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[sfilename ,sfilepath]=uiputfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'保存图像文件','untitled.jpg');
if ~isequal([sfilename,sfilepath],[0,0])
sfilefullname=[sfilepath ,sfilename];
imwrite(handles.img,sfilefullname);
else
msgbox('你按了取消键','保存失败');
end
(2)图像保存。
利用uiputfile和imwrite函数实现图像文件的保存。
实现代码:
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[sfilename ,sfilepath]=uiputfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'保存图像文件','untitled.jpg');
if ~isequal([sfilename,sfilepath],[0,0])
sfilefullname=[sfilepath ,sfilename];
imwrite(handles.img,sfilefullname);
else
msgbox('你按了取消键','保存失败');
end
3)程序的退出。