- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- bunit_welcome_to_sunshine_town单元测验【DOC精选】.doc
- Bunit-unit短语【DOC精选】.doc
- business card etiquette 跨文化交际中的名片礼仪【DOC精选】.doc
- bv-xiaoj高中地理新教材图表解读【DOC精选】.doc
- B_Unit - 副本【DOC精选】.doc
- BUnit 教案【DOC精选】.doc
- B【DOC精选】.doc
- Business Scenario - 订单受理 Service Process v.【DOC精选】.doc
- b_王伽伯-药物安全【DOC精选】.doc
- B一级学会主办的权威学术刊物目录..【DOC精选】.doc
文档评论(0)