欢迎来到天天文库
浏览记录
ID:37914962
大小:33.48 KB
页数:17页
时间:2019-06-02
《《VisualC++实践与提高—数字图像处理与工程应用篇》第五章学习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章图像的几何变换数字图像平移图像平移函数/**************************************************************************函数名称:Translation(LPSTRlpSrcStartBits,longlWidth,longlHeight,longlXOffset,longlYOffset,longlLineBytes,longlDstLineBytes)*函数参数:*LPSTRlpSrcStartBits,指向源DIB起始像素的指针*longlWidth,DIB图象的宽度*longlHe
2、ight,DIB图象的高度*longlXOffset,X方向偏移量*longlYOffset,Y方向偏移量*longlLineBytes,DIB图象的行字节数,为4的倍数*longlDstLineBytes,临时DIB图象的行字节数,为4的倍数*函数类型:BOOL*函数功能:该函数用来平移DIB图象************************************************************************/BOOLTranslation(LPSTRlpSrcStartBits,longlWidth,longlHeight,lo
3、nglXOffset,longlYOffset,longlLineBytes,longlDstLineBytes){longi;//行循环变量longj;//列循环变量LPSTRlpSrcDIBBits;//指向源像素的指针LPSTRlpDstDIBBits;//指向临时图象对应像素的指针LPSTRlpDstStartBits;//指向临时图象对应像素的指针HLOCALhDstDIBBits;//临时图象句柄hDstDIBBits=LocalAlloc(LHND,lWidth*lDstLineBytes);//分配临时内存lpDstStartBits=(char
4、*)LocalLock(hDstDIBBits);//锁定内存if(hDstDIBBits==NULL)//判断是否内存分配returnFALSE;//分配内存失败for(i=0;i=0)&&(j-lYOffset5、Offset>=0)&&(i-lXOffset6、LineBytes*lHeight);//复制图象LocalUnlock(hDstDIBBits);//释放内存LocalFree(hDstDIBBits);returnTRUE;}该函数调用函数CDImagePorcessView视图类的//图像平移voidCDImageProcessView::OnTranslation(){//TODO:AddyourcommandhandlercodehereCDImageProcessDoc*pDoc=GetDocument();/////////////////////////////////////////////7、///////////////////////////////////////////////////longlSrcLineBytes;//图象每行的字节数longlSrcWidth;//图象的宽度和高度longlSrcHeight;LPSTRlpSrcDib;//指向源图象的指针LPSTRlpSrcStartBits;//指向源像素的指针longlDstLineBytes;//新图象每行的字节数lpSrcDib=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHObject());//锁定DIBif(pDoc->m_dib.Get8、ColorNum(lpS
5、Offset>=0)&&(i-lXOffset6、LineBytes*lHeight);//复制图象LocalUnlock(hDstDIBBits);//释放内存LocalFree(hDstDIBBits);returnTRUE;}该函数调用函数CDImagePorcessView视图类的//图像平移voidCDImageProcessView::OnTranslation(){//TODO:AddyourcommandhandlercodehereCDImageProcessDoc*pDoc=GetDocument();/////////////////////////////////////////////7、///////////////////////////////////////////////////longlSrcLineBytes;//图象每行的字节数longlSrcWidth;//图象的宽度和高度longlSrcHeight;LPSTRlpSrcDib;//指向源图象的指针LPSTRlpSrcStartBits;//指向源像素的指针longlDstLineBytes;//新图象每行的字节数lpSrcDib=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHObject());//锁定DIBif(pDoc->m_dib.Get8、ColorNum(lpS
6、LineBytes*lHeight);//复制图象LocalUnlock(hDstDIBBits);//释放内存LocalFree(hDstDIBBits);returnTRUE;}该函数调用函数CDImagePorcessView视图类的//图像平移voidCDImageProcessView::OnTranslation(){//TODO:AddyourcommandhandlercodehereCDImageProcessDoc*pDoc=GetDocument();/////////////////////////////////////////////
7、///////////////////////////////////////////////////longlSrcLineBytes;//图象每行的字节数longlSrcWidth;//图象的宽度和高度longlSrcHeight;LPSTRlpSrcDib;//指向源图象的指针LPSTRlpSrcStartBits;//指向源像素的指针longlDstLineBytes;//新图象每行的字节数lpSrcDib=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHObject());//锁定DIBif(pDoc->m_dib.Get
8、ColorNum(lpS
此文档下载收益归作者所有