- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
昆明理工大学
数字图像处理实验综合报告
学 号:
姓 名:
指导教师: 桂 进 斌
实验一、bmp位图的读取与显示读取图像数据并显示。BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。
2、bmp图像组成:
(1)位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息;
2)位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;
3)调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;4)位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。读取图像数据并显示。1)生成一名为dip(学生使用自己的名字)的基于MFC的应用程序框架:选择file菜单new选项,在打开的窗口中选择project选项,选中MFC。并在project name输入dip ,选择存放project的位置;
(2)在应用程序中加入具体的函数和变量:
a、在CdipView.h中加入如入变量:
public:
int m_x;
HBITMAP m_Bmp;
LPVOID m_ColorList;
LPBYTE m_Image;
LPBITMAPINFOHEADER m_DibHead;
enum allocate {None, crtallocate, heapallocate};
allocate m_nBmpallocate;
allocate m_nImageallocate;
DWORD m_ImageSize;
int m_nPalette;
HANDLE m_hFile;
HANDLE m_hMap;
LPVOID m_lpvFile;
HPALETTE m_hPalette;
HGLOBAL m_hGlob;
利用ClassWizard向CdipView类中加入如下成员函数。
void zftjh(unsigned char *lpDib,long lWidth,long lHeight);
void SetPaletteSize(int nBitCount);
void Clear();
BOOL ReadFile(CFile *pFile);
BOOL SetPalette();
BOOL GetPalette();
BOOL DibToDC(CDC* pDC,CSize size);
BOOL MemToDib(LPVOID lmem);
CSize GetDibSize();
b、利用资源编辑器,在主菜单中添加消息响应函数OnFileOpen(),具体方法为打开管理窗口,在资源栏中展开资源文件,选择menu并打开,双击“IDR_MAINFRAME”,选择“文件”菜单下“打开”子菜单,右击在快捷菜单中选择“添加事件处理程序”,选择“CDipView类”,添加消息响应函数,单击“编辑”,并加入如下代码:
CFileDialog filedlg(TRUE,bmp,*.bmp);
if(filedlg.DoModal()!=IDOK)
return;
CFile myfile;
myfile.Open(filedlg.GetPathName(),CFile::modeRead);
if(ReadFile(myfile)==TRUE)
Invalidate();
SetPalette();
c、修改OnDraw()函数,添加如下代码:
BeginWaitCursor();
CSize DibSize = GetDibSize();
DibSize.cx *= m_x;
DibSize.cy *= -m_x;
DibToDC(pDC, DibSize);
EndWaitCursor();
在CDipView类的构造函数中加入:m_Image=NULL;
m_DibHead=NULL;
e、在初始化函数OnInitialUpdate()中加入如下代码替换原来的代码:
? m_x=25;
? CSize MaxSize(24000,3200
您可能关注的文档
最近下载
- 涉密运行维护管理制度.docx VIP
- MobileFlow-大模型驱动的终端自动化测试新范式-2025研发效能最佳实践.pdf VIP
- OPPO企业AI赋能研效提升的应用与原理解析-2025研发效能最佳实践.pdf VIP
- 《第四单元 西方音乐发展史掠影学习学习项目二 音乐中的浪漫主义》七年级上册音乐人教版 教案(表格式)(2024新版).docx
- T∕CACM 1090-2018 中医治未病技术操作规范 穴位敷贴.docx VIP
- 学科教学与综合育人能力提升谈谈个人见解与感悟.docx VIP
- 新解读《GB_T 35070.3-2018停车场电子收费 第3部分:交易流程》.docx VIP
- 1 《中国人民站起来了》课件(共61张PPT)统编版高中语文选择性必修上册.pptx VIP
- CMF:中国宏观经济专题报告(第98期):读懂价格信号,稳住经济大盘.pdf VIP
- 字节跳动 研发效能提升之道-2025研发效能最佳实践.pdf VIP
文档评论(0)