常用图像处理算法.doc

常用图像处理算法.doc

ID:55771850

大小:76.50 KB

页数:26页

时间:2020-06-07

常用图像处理算法.doc_第1页
常用图像处理算法.doc_第2页
常用图像处理算法.doc_第3页
常用图像处理算法.doc_第4页
常用图像处理算法.doc_第5页
资源描述:

《常用图像处理算法.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、8种常用图像处理算法(函数)------以下所有函数均放在CimageProcessingView.ccp下1.图像镜像voidCCimageProcessingView::OnGeomTrpo(){//获取指向文档的指针CCimageProcessingDoc*pDoc=GetDocument();//指向DIB的指针LPSTRlpDIB;//锁定DIBlpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());//设置光标状态为等待状态BeginWaitCursor();//调用VertMirror函数镜像图象if(VertMir

2、ror(lpDIB)){//设置文档修改标记pDoc->SetModifiedFlag(TRUE);//更新所有视图pDoc->UpdateAllViews(NULL);}else{//提示信息MessageBox("实现图象镜像失败!");}//解除锁定::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());//结束光标等待状态EndWaitCursor();}*函数名称:**VertMirror()**参数:**LPSTRlpDIB//指向源DIB图像指针**返回值:**BOOL//镜像成功返回TRUE,否则返回FALSE。**说明:**该函数用来

3、实现DIB图像的垂直镜像。*BOOLWINAPIVertMirror(LPSTRlpDIB){//原图象宽度LONGlWidth;//原图象高度LONGlHeight;//原图象的颜色数WORDwNumColors;//原图象的信息头结构指针LPBITMAPINFOHEADERlpbmi;//指向原图象和目的图象的像素的指针LPBYTElpSrc,lpDst;//平移后剩余图像在源图像中的位置(矩形区域)CRectrectSrc;//指向原图像像素的指针LPBYTElpDIBBits;//指向复制图像像素的指针LPBYTElpNewDIBBits;//内存句柄HLOCALh;/

4、/循环变量LONGi;//图像每行的字节数LONGlLineBytes;//获取图象的信息头结构的指针lpbmi=(LPBITMAPINFOHEADER)lpDIB;//找到图象的像素位置lpDIBBits=(LPBYTE)::FindDIBBits(lpDIB);//获取图象的宽度lWidth=::DIBWidth(lpDIB);//获取图象的高度lHeight=::DIBHeight(lpDIB);//获取图象的颜色数wNumColors=::DIBNumColors(lpDIB);//计算图像每行的字节数lLineBytes=WIDTHBYTES(lWidth*(lpbm

5、i->biBitCount));//暂时分配内存,以保存新图像h=LocalAlloc(LHND,lLineBytes);//分配内存失败,直接返回if(!h)returnFALSE;//锁定内存lpNewDIBBits=(LPBYTE)LocalLock(h);//如果是256色位图或真彩色位图if(wNumColors==256

6、

7、wNumColors==0){//平移图像,每次移动一行for(i=0;i

8、置的问题lpDst=(LPBYTE)lpDIBBits+lLineBytes*(lHeight-i-1);//备份一行memcpy(lpNewDIBBits,lpDst,lLineBytes);//将倒数第i行像素复制到第i行memcpy(lpDst,lpSrc,lLineBytes);//将第i行像素复制到第i行memcpy(lpSrc,lpNewDIBBits,lLineBytes);}}else{AfxMessageBox("只支持256色和真彩色位图");//释放内存LocalUnlock(h);LocalFree(h);returnfalse;}//释放内存Local

9、Unlock(h);LocalFree(h);//返回returnTRUE;}2.旋转图像(含对话框这里对话框需要自己建立)voidCCimageProcessingView::OnGeomRota(){//获取指向文档的指针CCimageProcessingDoc*pDoc=GetDocument();//指向DIB的指针LPSTRlpDIB;//锁定DIBlpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());//缩放比率intiRotaA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。