版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字图像处理实验报告1 - 图像(t xin)增强(zngqing)学生(xu sheng)姓名: 学号: 实验时间: 地点: 指导教师: 实验名称:图像增强试验目的 MATLAB中的实验验证。通过在MATLAB环境中相关函数的调用,验证图像增强的结果,增强感性认识,促进对课程内容的理解。通过编写C+程序。进一步理解算法的实现过程,为在实际项目软件中的应用打下基础。实验内容MATLAB中的实验验证灰度线性变换,利用imadjust等直方图均衡化,利用 histeq等基于模版的平滑滤波验, 证各种滤波模板对椒盐噪声的滤波效果。filter2, imfilter 等函数。中值滤波,验证对中值滤波椒
2、盐噪声的滤波效 。 medfilt2 等函数。图像锐化。验证图像锐化效果。 edge, filter2, gradient 等函数。c语言直方图均衡化编程用VC+编写程序,将自己的YUV格式的照片转换成灰度图像,并进行直方图均衡化处理,结果存放到res.yuv文件。 后附参考程序代码。实验记录 与 结果分析:(1)利用imadjust函数来实现灰度的线性化。先读出图像finley.jpg,然后调用matlab函数imadjust,实现灰度线性化。程序详见附录1.1,调整结果如下:调整前: 调整后: 由此可见视觉效果得到(d do)明显改善。利用(lyng) histeq函数(hnsh)实现直方
3、图均衡化。 先读出图像finley.jpg,然后调用matlab函数histeq,实现直方图均衡化,最后在显示图像。程序详见附录1.2。其图像变化结果和直方图如下:均衡前: 均衡后: 由此可见,直方图均衡化后,图像均匀性得到了很好的改善。基于模版的平滑滤波验。先读出图像finley.jpg,然后调用matlab函数imnoise给图像加上高斯白噪声(为什么加高斯白噪声,因为这种噪声最常见),用书上的P116页的相关模板,构造滤波器来实现相关滤波。程序详见附录1.3.结果如下:原图像:加过噪声(zoshng)以及滤波图像(t xin)如下:中值滤波(lb)。先读出图像finley.jpg,然后调
4、用matlab函数imnoise给图像加上高斯白噪声,再通过中值滤波函数medfilt2来给图像进行中值滤波。程序详见1.4.结果如下:图像锐化。先读出图像finley.jpg,然后调用matlab函数edge对图像进行边缘锐化。程序详见附录1.5.结果如下:(2)c语言(yyn)直方图均衡化编程。根据(gnj)公式(gngsh)以及理论对图像的均衡化进行C语言的实现,首先把finley.jpg转成finley.yuv格式然后对文件读取,处理,最后放回原文件。程序详见2。结果如下:处理前: 处理后: 实验小结本次实验可谓是收货颇多,我不仅学会了用matlab简单的处理数字图像,还会用c语言创建
5、exe软件了并且能自己做一些简单的图像处理并把它做成想要的软件,如果再加以学习,就可以成功的编出像Photoshop一样的软件,在这高速发展的社会能掌握这样的技能还是非常不错的。附录(源程序等)程序1.1:%=读出图像finley.jpg=%i=imread(E:电力数字图像处理实验实验二finley.jpg);i=rgb2gray(i); %转成灰度图像figure(1);subplot(121)imshow(i); %显示原图像subplot(122)imhist(i); %画出频率分布直方图j=imadjust(i,0.3,0.7,); %图像的均衡化调整figure(2)subplot
6、(121)imshow(j); %画出均衡化调整之后的图像subplot(122)imhist(j) %画出调整之后的频率分布直方图程序(chngx)1.2:%=读出图像(t xin)finley.jpg=%i=imread(E:电力(dinl)数字图像处理实验实验二finley.jpg);i=rgb2gray(i); %转成灰度图像j=histeq(i); %直方图的均衡化%=均衡化之前的图像=%subplot(121)imshow(i);subplot(122)imhist(i);%=均衡化之后的图像=%figure(2);subplot(121);imshow(j);subplot(12
7、2)imhist(j);程序1.3:%=读出图像finley.jpg=%i=imread(E:电力数字图像处理实验实验二finley.jpg);i=rgb2gray(i); %转成灰度图像figure(1)imshow(i);I=imnoise(i,gaussian);%给图像见高斯白噪声%定义相关模板h0=1/9.*1 1 1; 1 1 1; 1 1 1;h1=1/10.*1 1 1; 1 2 1; 1 1 1;h2=1/16.*1 2 1; 2 4 2; 1 2 1;h3=1/8.*1 1 1; 1 0 1; 1 1 1;h4=1/2.*0 1/4 0; 1/4 1 1/4; 0 1/4
8、0;%用上述模板进行滤波g0=imfilter(I,h0);g1=imfilter(I,h1);g2=imfilter(I,h2);g3=imfilter(I,h3);g4=imfilter(I,h4);%画图显示figure(2)subplot(231)imshow(I);title(噪声图像)subplot(232)imshow(g0);title(平滑(pnghu)滤波)subplot(233)imshow(g1);title(h1模板(mbn)处理结果)subplot(234)imshow(g2);title(高斯(o s)模板处理结果)subplot(235)imshow(g3);t
9、itle(h3模板处理结果)subplot(236)imshow(g4);title(用h4模板处理结果)程序1.4:%=读出图像finley.jpg=%i=imread(E:电力数字图像处理实验实验二finley.jpg);i=rgb2gray(i); %转成灰度图像I=imnoise(i,gaussian);%给图像见高斯白噪声k=medfilt2(I);%中值滤波%画图像subplot(121)imshow(I);title(噪声图像);subplot(122);imshow(k);title(中值滤波后图像);程序1.5:%=读出图像finley.jpg=%i=imread(E:电力数
10、字图像处理实验实验二finley.jpg);i=rgb2gray(i); %转成灰度图像BW=edge(i,roberts,0.1);%求罗伯茨梯度figure;imshow(BW);title(图像锐化);程序2:(其中黑体部分是程序功能部分其他为建立对话框的辅助部分)/ adjustDlg.cpp : implementation file/#include stdafx.h#include adjust.h#include adjustDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE
11、= _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX)
12、; / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DAT
13、A_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAdjustDlg dialogCAdjustDlg:CAdjustDlg(CWnd* pParent /*=NULL*/): CDialog(CAdjustDlg:IDD, pParent)/AFX_DATA_INIT(CAdjustDlg)/ NOTE: the ClassWizard will add member initialization here/
14、AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CAdjustDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAdjustDlg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MA
15、PBEGIN_MESSAGE_MAP(CAdjustDlg, CDialog)/AFX_MSG_MAP(CAdjustDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, adjust)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAdjustDlg message handlersBOOL CAdjustDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./
16、IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main wi
17、ndow is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CAdjustDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0 xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAb
18、out;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CAdjustDlg:OnPaint() if (IsIconic(
19、)CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int
20、y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CAdjustDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CAdjustDlg:adjust() / TODO: Add your control notification handler code hereunsigned char *pic_from=NULL,*pic_to=NULL;int w=352,h=288,Pixels=w*h,ImgBytes=Pixels*1.5;double n256=0.0,N=Pixels;double p256
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷链物流司机聘用合同
- 药品供应链招投标规范实施细则
- 2024年度高品质钢化玻璃定制加工合同版B版
- 商业步行街石拱桥施工合同
- 设备租赁合同:舞台灯光
- 2024年度网络安全产品研发合同
- 2024年修订版:双方官方分手协议书(2024版)2篇
- 商业装修简易施工合同
- 茶楼木地板翻新施工合同
- 船舶制造钢架棚施工合同
- 2024年连云港市工业投资集团社会招聘公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 2024年江西省水利投资集团限公司第一批次校园招聘公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 国家开放大学-法学专业-2023年秋季《法律文化》形成性考核作业答案
- sqe工作规划和展望
- 秩序安保维护服务 投标方案(技术方案)
- 2024政协提案知识讲座
- 银行老年客户营销方案
- 2024年全国行业职业技能竞赛(电力交易员)备考试题库大全(浓缩800题)
- 代办电瓶车车牌照委托书
- 智慧农业中的智能农机与农具技术
- 2021年上海市公务员考试《行测》真题(B卷)和答案解析
评论
0/150
提交评论