1 / 26
文档名称:

常用图像处理算法.doc

格式:doc   大小:76KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

常用图像处理算法.doc

上传人:gxngqvk 2020/6/20 文件大小:76 KB

下载得到文件列表

常用图像处理算法.doc

相关文档

文档介绍

文档介绍:8种常用图像处理算法(函数)------::OnGeomTrpo(){//imageProcessingDoc*pDoc=GetDocument();//指向DIB的指针LPSTR lpDIB;//锁定DIBlpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());//设置光标状态为等待状态BeginWaitCursor();//调用VertMirror函数镜像图象if(VertMirror(lpDIB)){ //设置文档修改标记pDoc->SetModifiedFlag(TRUE);//更新所有视图pDoc->UpdateAllViews(NULL); }else{//提示信息MessageBox("实现图象镜像失败!");}//解除锁定::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());//结束光标等待状态EndWaitCursor(); }*函数名称:**VertMirror()**参数:**LPSTRlpDIB//指向源DIB图像指针**返回值:**BOOL//镜像成功返回TRUE,否则返回FALSE。**说明:**该函数用来实现DIB图像的垂直镜像。*BOOLWINAPIVertMirror(LPSTRlpDIB){//原图象宽度LONGlWidth;//原图象高度LONGlHeight;//原图象的颜色数WORDwNumColors;//原图象的信息头结构指针LPBITMAPINFOHEADERlpbmi;//指向原图象和目的图象的像素的指针LPBYTElpSrc,lpDst;//平移后剩余图像在源图像中的位置(矩形区域)CRect rectSrc;//指向原图像像素的指针LPBYTElpDIBBits;//指向复制图像像素的指针LPBYTE lpNewDIBBits;//内存句柄HLOCAL h;//循环变量LONG i;//图像每行的字节数LONGlLineBytes;//获取图象的信息头结构的指针lpbmi=(LPBITMAPINFOHEADER)lpDIB;//找到图象的像素位置lpDIBBits=(LPBYTE)::FindDIBBits(lpDIB);//获取图象的宽度lWidth=::DIBWidth(lpDIB);//获取图象的高度lHeight=::DIBHeight(lpDIB);//获取图象的颜色数wNumColors=::DIBNumColors(lpDIB);//计算图像每行的字节数lLineBytes=WIDTHBYTES(lWidth*(lpbmi->biBitCount));//暂时分配内存,以保存新图像h=LocalAlloc(LHND,lLineBytes);//分配内存失败,直接返回if(!h) returnFALSE;//锁定内存lpNewDIBBits=(LPBYTE)LocalLock(h);//如果是256色位图或真彩色位图if(wNumColors==256||wNumColors==0){//平移图像,每次移动一行for(i=0;i<lHeight/2;i++){//指向原图象倒数第i行像素起点的指针 lpSrc=(LPBYTE)lpDIBBits+lLineBytes*i;//目标区域同样要注意上下倒置的问题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;}//释放内存LocalUnlock(h);LocalFree(h);//返回returnTRUE;}(含对话框这里对话框需要自己建立)imageProcessingView::OnGeomRota(){//imageProcessingDoc*pDoc=GetDocument();//指向DIB的指针LPSTR lpDIB;//锁定DIBlpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());//缩放比率intiRotaAngle;//创建对话框CDlgGeoRotadlgPara;//