1图像处理实验部分打开图像1.创建MFCApplication工程:文件名称:MyImage2.添加cdib.h和cdib.cpp到工程项目中(也可以在工程项目中创建这两个文件,需要编写程序)3.在MyImageDoc.h文件中增加如下语句public:CDib*m_pDib;(此类中增加成员变量表示Cdib对象的指针)4.在MyImageDoc.cpp文件中的构造函数中添加:m_pDib=newCDib;在析构函数中添加deletem_pDib;5.在MyImageDoc.h文件中添加#include"cdib.h"6.在Doc.cpp中CMyImageDoc::Serialize(CArchive&ar)函数中添加:m_pDib->Serialize(ar);用CDib的串行化来实现CDisplayBmpImDoc文档的串行化。7.在CMyImageView.h中添加变量声明public:intlWidth;intlHeight;longintlLineBytes;CPointStartPoint;CPointEndPoint;boolm_bTwoValue;8.CMyImageView.cpp文件中的OnDraw()函数中添加代码voidCMyImageView::OnDraw(CDC*pDC){⋯CSizesize;intlHeight,lWidth;if(pDoc->m_pDib->m_lpBMIH!=NULL){lWidth=pDoc->m_pDib->m_lpBMIH->biWidth;lHeight=pDoc->m_pDib->m_lpBMIH->biHeight;size.cx=lWidth;size.cy=lHeight;pDoc->m_pDib->Draw(pDC,CPoint(0,0),size);}}运行,即可打开一幅BMP格式的图像2一、灰度化与直方图图1初始图片图2灰度化图片(作为原图片使用)图3灰度化图片直方图3灰度化图片直方图生成流程图二、图像滤波(一)均值滤波(3*3模板)基本思想:基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度值g(x,y)。步骤如下:1.在资源菜单menu中HistModify中添加菜单按钮MeanFilter2.ID名称可以随意修改,也可以默认。3.中CMyImage点击右键,选择属性在下拉菜单中找到ID_IMGSMOOTHMEANFILTER,添加代码4.在MyImageView.cpp中出现voidCMyImageView::OnImgsmoothMeanfilter()函数5.在其中添加代码voidCMyImageView::OnImgsmoothMeanfilter(){CMyImageDoc*pDoc=GetDocument();intlHeight=pDoc->m_pDib->m_lpBMIH->biHeight;intlWidth=pDoc->m_pDib->m_lpBMIH->biWidth;intlLineBytes=(lWidth+3)/4*4;unsignedchar*lpSrc;unsignedchar*lpDst;4unsignedchar*lpNewDib;lpNewDib=newunsignedchar[lLineBytes*lHeight];memcpy(lpNewDib,pDoc->m_pDib->m_lpImage,lLineBytes*lHeight);for(inti=0;im_pDib->m_lpImage+lLineBytes*(lHeight-1-i);lpDst=lpNewDib+lLineBytes*(lHeight-1-i);for(intj=0;j0&&i0&&jm_pDib->m_lpImage,lpNewDib,lLineBytes*lHeight);Invalidate(true);MessageBox(L"均值滤波");}(二)中值滤波(3*3模板)基本思想:中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升的二维数据序列,并取出序列中位于中间位置的灰度作为中心像素的灰度。步骤如下:1.在资源菜单menu中HistModify中添加菜单按钮MedianFilter2.中CMyImage点击右键,选择属性在下拉菜单中找到ID_IMGSMOOTHMEDIANFILTER,添加代码3.在MyImageView.cpp中出现voidCMyImageView::OnImgsmoothMedianfilter()函数4.在其中添加代码voidCMyImageView::OnImgsmoothMedianfilter(){CMyImageDoc*pDoc=GetDocument();intlHeight=pDoc->m_pDib->m_lpBMIH->biHeight;intlWidth=pDoc->m_pDib->m_lpBMIH->biWidth;intlLineBytes=(lWidth+3)/4*4;5unsignedchar*lpSrc;unsignedchar*lpDst;unsignedchar*lpNewDib;lpNewDib=newunsignedchar[lLineBytes*lHeight];memcpy(lpNewDib,pDoc->m_pDib->m_lpImage,lLineBytes*lHeigh...