用VC++实现图像阈值分割.doc

用VC++实现图像阈值分割.doc

ID:55278807

大小:152.50 KB

页数:11页

时间:2020-05-08

用VC++实现图像阈值分割.doc_第1页
用VC++实现图像阈值分割.doc_第2页
用VC++实现图像阈值分割.doc_第3页
用VC++实现图像阈值分割.doc_第4页
用VC++实现图像阈值分割.doc_第5页
资源描述:

《用VC++实现图像阈值分割.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、南昌航空大学实验报告课题名称:数字图像处理实验名称:图像阈值分割班级:09045310姓名:戴光涛同组人:指导老师评定:签名:一、实验目的用VC++实现位图阈值分割二、实验内容与步骤1、首先建立一个工程。打开VC++6.0,单击文件【files】→新建【new】→工程【projects】在打开的projects下选择MFCAppWizard[exe]→在projectname下输入自己的工程名例如(Fenge)→单击【ok】→在打开的对话框中选择基于单文档【singledocument】→在第四步“MFCAppWizardstep4of6”面板中删掉【隐藏工具

2、栏】和【打印和打印预览】两个选项,之后的全部选择默认,单击finish,出现一个“NewProjectInformation”窗口,单击【ok】。一个简单的工程框架就建好了。2、现在我们正式开始在新建工程Fenge中进行编程实现bmp位图的阈值分割。点击左边框中的【ResourceView】框找到【Menu】点开,双击Menu下的图标,在右面的显示框中创建两个菜单:打开ID:ID_FILE_OPEN阈值分割ID:ID_YuZhiFenGe3、给这两个菜单建立类向导。在右边的窗口中右击“打开”,选择“建立类向导”,然后在打开的对话框中按下图1操作,“Classn

3、ame”选择“CFengeView”→”ObjectIDs”中选择“ID_FILE_OPEN”→“Message”中选择“COMMAND”,点击“AddFunction”键就会在“Memberfunctions”中,然后点击“EditCode”,在自动生成的OnFileOpen函数中编写代码:voidCFengenView::OnFileOpen(){//TODO:AddyourcommandhandlercodehereCFileDialogfileDlg(true);fileDlg.m_ofn.lpstrTitle="图片打开对话框";fileDlg.m_

4、ofn.lpstrFilter="BMPFiles(*.bmp)*.bmp";if(IDOK==fileDlg.DoModal()){m_fileName.Format("%s",fileDlg.GetPathName());m_Dib.LoadFile(m_fileName);Invalidate();}}图1同理,操作“阈值分割”图2选择“CFengeView”。点击“EditCode”,在自动生成“OnYuZhiFenGe”函数中编写代码:voidCFengenView::OnYuZhiFenGe(){//TODO:Addyourcomman

5、dhandlercodehereif(m_Dib.IsValid()){inti;intYuzhi;//阈值变量//各颜色分量的灰度分布密度floatmidu[256];//计算灰度分布密度m_Dib.Zhifangtu(midu);//调用灰度统计处理函数//创建灰度直方图对话框CDlgZhiFangTu*dlg;dlg=newCDlgZhiFangTu(this);dlg->Create(IDD_DIALOG_ZhiFangTu);//传递灰度分布密度数据给面板类for(i=0;i<256;i++)dlg->m_fIntensity[i]=midu[i];

6、//显示对话框,由用户进行灰度折线变换dlg->ShowWindow(SW_RESTORE);//创建阈值选择对话框CDlgYuZhiFenGedlg1;dlg1.m_Yuzhi=0;//显示对话框,提示用户输入阈值if(dlg1.DoModal()==IDOK){Yuzhi=dlg1.m_Yuzhi;}//删除对话框deletedlg1;deletedlg;m_Dib.Yuzhifenge(Yuzhi);//调用阈值分割处理函数//重绘Invalidate();}}4、创建一个处理位图的类CDib,且CDib类是由CObject类派生出来的。点击工程菜单栏中

7、的插入【insert】→【insertclass】→类类型选“GenericClass”,→类名称填“CDib”→【ok】。可以看见工程窗口的ClassView中多了一个CDib类;点开CDib类的头文件,输入以下代码,注意变量可以直接复制,声明的函数不要直接复制(在CDib类右击选择“Addmemberfunction”,输入函数类型和函数名)。classCDib:publicCObject{public:RGBQUAD*m_pRGB;BYTE*m_pData;UINTm_numberOfColors;boolm_valid;BITMAPFILEHEADER

8、bitmapFileHeader;//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。