?GetClientRect(&r);Р?SetScroll();Р?InvalidateRect(&r,TRUE);Р?UpdateWindow(); Р}Рvoid CBmpDemoDoc::OnMenu52() Р{Р?// TODO: Add mand handler code hereР //取得图片的长度和宽度Р?int width=m_mBmp.GetWidth();Р int height=m_mBmp.GetHeight();Р memBITMAP temp(width,height,m_mBmp);Р //对像素逐点进行处理Р?for(int i=0;i<width;i++)Р?{Р for(int j=0;j<height;j++)Р {Р //取得待处理像素的RGB值Р COLORREF color=m_mBmp.GetPixel(i,j);Р //判断像素是否小于128Р if(color<RGB(128,128,128))Р Р //如果成立则将像素重置为0Р color=RGB(0,0,0);Р //否则则将像素重置为255Р else color=RGB(255,255,255);Р //将该像素的RGB值设置为处理后的RGB值Р temp.SetPixel(i,j,color);Р }Р }Р m_mOldBmp=m_mBmp;Р UndoFlag=TRUE;Р m_mBmp=temp;Р m_mBmp.DataToView(m_mViewBmp);Р SetModifiedFlag(UndoFlag);Р?}Р实际图像处理的结果及分析Р上图中,第一幅为原始图片,第二幅为处理后的图片。由图片可以看出,此算法可以完美的对灰度图实现二值化。对阈值和两个固定值的改变会改变图像处理的结果,优化或者降低图像的质量,因此在应用中要合理选取阈值和固定值。