c++编程图像处理讲义-【DOC精选】.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c编程图像处理讲义-【DOC精选】

《数字图像处理》讲义 Visual C++ 编程实现图像处理基础 1. 编程环境简介 在新工作区创建Win32 console application类型的工程:console application类型为a simple application 新工程信息:+ Simple Win32 Console application. Main: example.cpp Precompiled Header: Stdafx.h and Stdafx.cpp 将位图文件读写头文件loadbmp.h复制到新建工程路径下,在Header Files中添加loadbmp.h 在主文件example.cpp中删除 /*int main(int argc, char* argv[]) { return 0;}*/ 添加图像处理操作代码 2.代码解读 example.cpp #define EXTRA_NAME $peppernoise. #include loadbmp.h void Pepper_Noise() { if (lpBitmap==0) return; int x,y,p; srand((unsigned)time(NULL)); for(y=0;ynHeight;y++) { for(x=0;xnWidth;x++) { p=x*3+y*nByteWidth; if (rand()31500) { lpBits[p+2]=0; lpBits[p+1]=0; lpBits[p]=0; } /*else if (rand()20000) { lpBits[p+2]=255; lpBits[p+1]=255; lpBits[p]=255; }*/ } } } void main(int argc, char *argv[])//argc命令行参数个数(包含第一个参数可执行文件名) // argv命令行字符串指针,argv[0]为第一个参数:可执行文件名 { /*if(argc==2) FileName=argv[1]; else return;*/ LoadBitmap(); Pepper_Noise(); SaveAs(); delete lpBitmap; } loadbmp.h #if ! defined (_LOADBMP_H) #define _LOADBMP_H #if ! defined (EXTRA_NAME) #define EXTRA_NAME ~EX. #endif #include afx.h #include iostream.h #include windows.h #include math.h int nWidth;//位图宽度 int nHeight;//位图高度 int nLen; int nByteWidth;//位图字节宽度 BYTE *lpBackup; BYTE *lpBitmap;//位图文件头指针 BYTE *lpBits;//位图图像数据指针(根据有无调色板,指向位置可变) CString FileName; CString Front; CString Rear; /*拆分文件名*/ void CuttheName() { int Position; Position=FileName.Find(.); Front=FileName.Left(Position); Rear=FileName.Mid(Position+1); } void LoadBitmap() { /*把位图文件读入内存*/ CFile File; ;//从CFile类中生成一个实例File if (!File.Open(d:\\8bitcol.bmp,CFile::modeRead)) return;//打开文件只读,打开成功返回非0值,否则返回0 CuttheName();//拆分文件名,便于在图像处理后将新文件名命名为原始文件名+新字符串+扩展名 //if (lpBitmap) delete lpBitmap;//若已经存在lpBitmap,则将其删除,释放它指向的内存区域 nLen=File.GetLength();//获取文件长度 lpBitmap=new BYTE[nLen];//根据位图文件长度为位图文件开辟nLen字节大小的内存 File.Read(lpBitmap,nLe

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档