VC++图像处理集中实习指导书(20210416173918)_第1页
VC++图像处理集中实习指导书(20210416173918)_第2页
VC++图像处理集中实习指导书(20210416173918)_第3页
VC++图像处理集中实习指导书(20210416173918)_第4页
VC++图像处理集中实习指导书(20210416173918)_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字图像处理集中实习指导书 本文基于VC+6. 0开发环境,介绍数字图像处理的基本操作和处理。 一、工程的建立 1、运行Microsoft Visual C+程序,进入VC+主界面。 2、单击“File ”菜单,选择“New”来新建,在出现的对话框中选择Project,并选择“MFC AppWizardexe 表示建立一个MFC应用向导支持的工程文件。然后在右边输入工程名称 (本文为为例)和该工程存储地址,工程名要求为4位数字,如某同学是3班,学号 为4,则工程命名为“0304”,输入完毕后单击“0K”。 3、下面的六个步骤中,前五个选择默认,第六个步骤中,将视图类的基类更改为CSrol IV

2、iew 类,然后点击完成。 通过这些步骤就可以建立一个Windows风格的工程,这个工程也是今后进行VC图像处 理的基础。点击编译、连接,没有错误和警告,然后运行,会出现一个应用程序界面,界面 具有丈件、编辑、查看、窗口和帮助这些菜单,点击其子菜单,发现程序什么也没执行,这 需要我们为它加入相关的功能。 二、加钱位图类 1将已经写好的位图类件Dib.h和Dib.cpp拷贝到工程文件夹的根目录下,点击主菜单 Pro ject,选择Add to Pro ject下的Files,然后选择位图类的头文件和cpp文件,这时, 该视图类就加到工程中了,在左边项目工作区的ClassView中就可以看到该类的

3、列表。展开 每个类,可看到毎个类的变量和函数。 2、编译、连接无错误后.可以运行。 三、读写位图 1、在视图类的cpp文件中包含dib.h头文件,并生成一个CDib对象:CDib dib; 2、在视图类头文件的构造函数中加入3个成员变量如下: BYTE *m_pB i tmap; DV/ORD m_dwHe i ght, m_dwWidth; WORD m_flag; 分别表示数据指针、图像的高度、图像的宽度和图像的类型。 在析构函数中加入 if (m_pBitmap) delete m_pBitmap; 3、添加“打开”消息响应函数。可用“Ct门+VT打开类向导对话框,选择视图类中的打开 丈

4、件ID号,选择COMMAND命令类型,点击“Add Function”按钮,选择默认的函数名,进 入该函数,键入如下代码行,进行读图像: CStr ing strFiI eName; static char szFi Iter = BMPGetDocument0)-SetT i 11e (strFiIeName); if(!dib LoadBmpF i le(strF iI eName, m_pB itmap, m_dwHe i ght, m_dwWi dth, m_fIag) return; Invalidate(true); 4、在视图类的OnDraw 数中加如下代码显示图像: RECT

5、rectDoc; GetCIientRect (SrectDoc); CS i ze pageSize(rectDoc r i ght, rectDoc bottom); CSize I i neS i ze (100,1); CSize docSize(0, 0); RECT rect; GetCIientRect ( BYTE *plmageDisp = NULL; BITMAP INFO *pBmpInfo = NULL; /设置在指定设备容中(显卡存)的拉伸模式 pDC-SetStretchBItMode(C0L0R0NC0L0R); if(m_pBitmap) d i b Trans

6、ToBmp (m_dwHe i ght, m_dwW i dth, m_pB i tmap, p I mageD i sp, m_f I ag); d i b. CreateB ITMAPINFO (pBmp I nfo, m_dwHe i ght, m_dv/W i dth, m_f I ag); /拷贝存数据到显示器 StretchDIBits (pDC-GetSafeHdc(), rect left, rect top, m_dv/W i dth, m_dwHe i ght, 0,0, m_dwW i dth, m_dwHe i ght, plmageDi sp, pBmpInfo, D

7、IB_RGB_COLORS, SRCCOPY); docSizeex = rectDoc .left + m_dwWidth; docSizecy = rectDoc.top + m_dwHe i ght; SetScroIISizes(MM_TEXT, docSize, pageSize, I ineSize); if(plmageDisp) delete plmageDisp; if (pBmpInfo) de Iete pBmpInfo; 5、为视图类添加“保存”消息响应函数,进行文件存储。添加的代码如下: CString strFiI eName; static char szFi I

8、ter = BMP文件(*. bmp) | *. bmp | |H; CFileDialog dlg(false, nbmpM, NULL, 0FN_HIDEREADONLY | 0FN_0VERWRITEPR0MPT, szFiIter); if (dI g. DoModa I () != IDOK) return; strFi I eName = d I g. GetPathName (); if (!dib. Wr i teBmpF i le (strFi I eName, m_pBi tmap, m_dwHe i ght, m_dwWi dth, m_f I ag) return; 6

9、、编译、连接,运行后,就可以进行读、显示和存储BMP图像了。 四、制作对话框 1、修改对话框的属性。右击对话框空白处,选择属性,修改对话框的ID和Captiono 2、在项目工作区中选择Resource,右击Dialog,选中Insert Dialog命令,这时系统就生 成了一个对话框资源,上面有两个按钮。手工布置对话框:分别右击两个按钮,选择属性, 修改ID和Caption,改为“确定和“取消”。 3、添加翳态丈本。单击空间工具栏上的辭态文本,放在对话框上,单击右键,选择属性, 修改为输入阈值。 4、添加编辑框。在控件工具栏上选择编辑框,放在对话框上,修改属性。 每个对话框及控件都有一个不同

10、的IDo 5、增加对话框类。右击对话框的标题栏,选择ClassWizard,出现增加新类的对话框,选 择创建一个新类CYuzhi,单击OK,然后在Name中输入新类的名字,基类为CDialog,修改 该对话框的IDo这时在项目工作区的ClassView中可以看到一个新类CYuzhi。 6、为CYuzhi类增加成员变量。进入类向导对话框,选择Member Variables标签,在CYuzhi 类中选中编辑框ID,单击Add Variable按钮,在对话框中输入成员变量的名字.成员变量 页脚 为整型值型,单击OK。 7、为对话框上的确定按钮定爻响应函数。在Message Maps标签中,选择对话

11、框类,选择 IDOK,在Message中选择BK_CLICKED,单击Add Funct ion按钮,输入响应函数名字。 五、制作莱单 1、加主菜单。点击工程左下端项目工作区的ResourceView,双击Menu,双击IDR_BTYPE, 双击空白主菜单,在属性对话框的Caption中输入“空间域S 2、加子菜单。双击位图操作下的空白菜单,建立二值化”子菜单,分别为其设置ID (如 可以为ID_BINARY)。菜单项目输入完毕后,可以编译连接工程,发现建立的菜单是灰色的, 不能使用。这是因为还没有定艾它们的功能。 3、添加菜单响应函数。单击VC+ +主菜单View下的ClassWizard,

12、单击对话框中的Message Maps标签,选择工程中的视图类,选中直方图ID_BINARY,选中Message中的COMMAND,单 击Add Funct ion按钮,在对话框中给出默认的函数名OnBinary,点击OK。此函数就自动加 入到视图类中了.单击Edit Code,就进入该函数的编辑界面。该函数位于视因类。 4、在视图类的头文件顶部包含Yuzhi头文件.在OnBinary ()函数中增加如下代码: CYuzhi dig; d I g. DoModa I (); UpdateData (TRUE); if(m_fIag = 24) AfxMessageBoxC1 只处理8位图像! M); return; BYTE *pData = new BYTEm_dwWi dth*m_dwHe i ght; BYTE *pOld = pData; memcpy (pData, m_pB i tmap, m_dwW i dth*m_dwHe i ght); DWORD i, j; for (i二0;im_dwHeight;i+) for (j=0;j= dig. m_yuzhi) *p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论