网站大量收购独家精品文档,联系QQ:2885784924

《数字图象处理》课程实验报告.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数字图象处理》课程实验报告

《数字图象处理》课程实验报告 [程序说明] 本课程的实验内容,是在Microsoft Visual C++编程环境下实现的。其生成的可执行文件,可用于对BMP文件格式图像进行一定的图像分析和处理。主要包括:图像的显示、存储、图像的灰度运算(显示直方图、灰度拉伸、切分、线性变换等)、频域变换(傅立叶变换、离散余弦变换、沃尔什变换)、频域滤波(高通、低通、带通等)、平滑、锐化、退化、复原、边界提取、特定目标分离等操作。 [核心函数说明] #图象显示函数 void CMyView::OnDraw(CDC* pDC) { // 获取文档*/ CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // 获取DIB HDIB hDIB = pDoc-GetHDIB(); // 判断DIB是否为空 if (hDIB != NULL) { LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) hDIB); // 获取DIB宽度 int cxDIB = (int) ::DIBWidth(lpDIB); // 获取DIB高度 int cyDIB = (int) ::DIBHeight(lpDIB); ::GlobalUnlock((HGLOBAL) hDIB); CRect rcDIB; rcDIB.top = rcDIB.left = 0; rcDIB.right = cxDIB; rcDIB.bottom = cyDIB; CRect rcDest; // 不必缩放图像 rcDest = rcDIB; // 输出DIB ::PaintDIB(pDC-m_hDC, rcDest, pDoc-GetHDIB(), rcDIB, pDoc-GetDocPalette()); } // 恢复正常光标 EndWaitCursor(); } 核心函数: 函数名称: PaintDIB() 参数: HDC hDC - 输出设备DC LPRECT lpDCRect - 绘制矩形区域 HDIB hDIB - 指向DIB对象的指针 LPRECT lpDIBRect - 要输出的DIB区域 CPalette* pPal - 指向DIB对象调色板的指针 返回值: BOOL - 绘制成功返回TRUE,否则返回FALSE。 说明: 该函数主要用来绘制DIB对象。其中调用了StretchDIBits()或者 SetDIBitsToDevice()来绘制DIB对象。输出的设备由由参数hDC指定;绘制的矩形区域由参数lpDCRect指定;输出DIB的区域由参数lpDIBRect指定。 #打点显示图象 void CMyView::OnDisp1() { // 获取文档 CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CClientDC dc(this); // 获取DIB HDIB hDIB = pDoc-GetHDIB(); //指向DIB的指针 if(hDIB == NULL) { return ; } LPSTR lpDIB; //指向DIB像素的指针 LPSTR lpDIBBits; lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) hDIB); //找到DIB图象象素的起始位置 lpDIBBits = ::FindDIBBits(lpDIB); 。 。 BeginWaitCursor(); // 获取DIB宽度 int cxDIB = (int) ::DIBWidth(lpDIB); // 获取DIB高度 int cyDIB = (int) ::DIBHeight(lpDIB); LONG lLineBytes; lLineBytes=WIDTHBYTES(cxDIB*8); int i,j; for(i=0; i = cyDIB-1;i++) { for(j=0; j =cxDIB-1 ;j++) { dc.SetPixel(j+cxDIB+3,cyDIB-1-i, RGB(*(lpDIBB

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档