课程设计--基于vc的bmp图像二值化处理平台内容摘要:

思想和算法的实现 ,通过这次课程设计 ,使我了解到了算法设计的重要性 (算法设计是编程实现的前提 ),提高了自己动手编程的能力和汲取一些先进算法的思想 ,这对以后图像处理的深入学习大有帮助。 该数字图像界面是基于 Microsoft Visual C++ 的 MFC 多文档实现的 ,在界面设计上看起来过于单调 ,界面设计简单 ,但易于操作。 Visual C++ 的MFC 对话框的编程是界面看起来更 加美观 ,更接近软件系统 ,给人不一样的感觉 ,提高了工具栏和菜单栏的编程实现难度和设计的复杂度 ,这是今后学习的方向。 六、参考文献: [1] 郑莉 董渊 张瑞丰 , C++语言程序设计 (第三版 ), 清华大学出版社 2020 [2]David (美 )等 , Visual C++ 技术内幕 ,北京希望电子出版 8 社 ,2020 [3]谢凤英 赵丹培 , Visual C++ 数字图像处理 ,电子工业出版社 ,2020 [4]求是科技 张宏林 ,精通 Visual C++ 数字图像处理典型算法及实现 ,人 民邮电出版社 ,2020 [5]刘锐宁 宋坤等 , Visual C++从入门到精通 ,清华大学出版社 ,2020 七、 代码 // //添加新类 CDib 类定义 ifndef __DIB_H__ define __DIB_H__ include class CDib { public: CDib()。 ~CDib()。 BOOL Draw( CDC *pDC, int nX = 1, int nY = 1, int nWidth = 1, int nHeight = 1, int Style = 1)。 BOOL Save( const char *pszFilename )。 BOOL Load( const char * )。 BOOL SetPalette( CDC * )。 // bool Valid。 public: int m_BitCount。 9 WORD * m_pWordData。 CPalette m_Palette。 unsigned char *m_pDib, *m_pDibBits。 DWORD m_dwDibSize。 BITMAPINFOHEADER *m_pBIH。 RGBQUAD *m_pPalette。 int m_nPaletteEntries。 public: bool ConvertToTwoValue()。 }。 endif // //添加类 CDib 类中处理函数定义 include include CDib::CDib() { m_pDib = NULL。 m_pWordData = NULL。 } 10 CDib::~CDib() { if( m_pDib != NULL ) delete [] m_pDib。 if( m_pWordData != NULL ) delete [] m_pWordData。 } BOOL CDib::Load( const char *pszFilename ) { CFile cf。 if( !( pszFilename, CFile::modeRead ) ) return( FALSE )。 DWORD dwDibSize。 dwDibSize = () sizeof( BITMAPFILEHEADER )。 pDib = new unsigned char [dwDibSize]。 if( pDib == NULL ) return( FALSE )。 11 BITMAPFILEHEADER BFH。 try{ if( ( amp。 BFH, sizeof( BITMAPFILEHEADER ) ) != sizeof( BITMAPFILEHEADER ) || != 39。 MB39。 || ( pDib, dwDibSize ) != dwDibSize ){ delete [] pDib。 return( FALSE )。 } } catch( CFileException *e ){ eDelete()。 delete [] pDib。 return( FALSE )。 } 12 ()。 if( m_pDib != NULL ) d。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。