欢迎来到天天文库
浏览记录
ID:59258541
大小:11.71 KB
页数:2页
时间:2020-09-08
《图像处理-图像的镜像翻转.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、图像的镜面翻转图像的镜面翻转的原理十分简单:若为左右翻转则翻转后图像每个像素点的横坐标均与翻转前对应像素点的横坐标关于图像的竖直中心线对称,若为上下翻转则翻转后图像每个像素点的纵坐标均与翻转前对应像素点的纵坐标关于图像的水平中心线对称下面分别给出水平翻转和竖直翻转的实现代码://水平voidCDipView::OnHorizontal(){CDipDoc*pDoc=GetDocument();if(!(pDoc->m_pBmi&&pDoc->m_pBmData)){MessageBox(_T("NoObject"),MB_OK);}else{intsize=pDoc-
2、>m_pBmi->bmiHeader.biSizeImage;BYTE*ptemp=NULL;ptemp=newBYTE[size];inti_top=pDoc->m_pBmi->bmiHeader.biHeight;intj_top=pDoc->m_pBmi->bmiHeader.biWidth*3;intw=pDoc->m_pBmi->bmiHeader.biSizeImage/i_top;memcpy(ptemp,pDoc->m_pBmData,size);for(inti=0;i3、->m_pBmData[i*w+j]=ptemp[i*w+j_top-3-j];pDoc->m_pBmData[i*w+j+1]=ptemp[i*w+j_top-3-j+1];pDoc->m_pBmData[i*w+j+2]=ptemp[i*w+j_top-3-j+2];}}if(ptemp)deleteptemp;Invalidate();//TODO:在此添加命令处理程序代码}}//竖直voidCDipView::OnUpright(){CDipDoc*pDoc=GetDocument();if(!(pDoc->m_pBmi&&pDoc->m_pBmData)){4、MessageBox(_T("NoObject"),MB_OK);}else{intsize=pDoc->m_pBmi->bmiHeader.biSizeImage;BYTE*ptemp=NULL;ptemp=newBYTE[size];inti_top=pDoc->m_pBmi->bmiHeader.biHeight;intj_top=pDoc->m_pBmi->bmiHeader.biWidth*3;intw=pDoc->m_pBmi->bmiHeader.biSizeImage/i_top;memcpy(ptemp,pDoc->m_pBmData,size);f5、or(inti=0;im_pBmData[(i_top-1-i)*w+j]=ptemp[i*w+j];pDoc->m_pBmData[(i_top-1-i)*w+j+1]=ptemp[i*w+j+1];pDoc->m_pBmData[(i_top-1-i)*w+j+2]=ptemp[i*w+j+2];}}if(ptemp)deleteptemp;Invalidate();//TODO:在此添加命令处理程序代码}}
3、->m_pBmData[i*w+j]=ptemp[i*w+j_top-3-j];pDoc->m_pBmData[i*w+j+1]=ptemp[i*w+j_top-3-j+1];pDoc->m_pBmData[i*w+j+2]=ptemp[i*w+j_top-3-j+2];}}if(ptemp)deleteptemp;Invalidate();//TODO:在此添加命令处理程序代码}}//竖直voidCDipView::OnUpright(){CDipDoc*pDoc=GetDocument();if(!(pDoc->m_pBmi&&pDoc->m_pBmData)){
4、MessageBox(_T("NoObject"),MB_OK);}else{intsize=pDoc->m_pBmi->bmiHeader.biSizeImage;BYTE*ptemp=NULL;ptemp=newBYTE[size];inti_top=pDoc->m_pBmi->bmiHeader.biHeight;intj_top=pDoc->m_pBmi->bmiHeader.biWidth*3;intw=pDoc->m_pBmi->bmiHeader.biSizeImage/i_top;memcpy(ptemp,pDoc->m_pBmData,size);f
5、or(inti=0;im_pBmData[(i_top-1-i)*w+j]=ptemp[i*w+j];pDoc->m_pBmData[(i_top-1-i)*w+j+1]=ptemp[i*w+j+1];pDoc->m_pBmData[(i_top-1-i)*w+j+2]=ptemp[i*w+j+2];}}if(ptemp)deleteptemp;Invalidate();//TODO:在此添加命令处理程序代码}}
此文档下载收益归作者所有