opencv 数字图象处理 图像平移变换
2015-06-29 22:05
429 查看
图像平移(Translation)变换是图像几何变换中最为简单的一种变换,是将一副图像中的所有像素都按照给定的偏移量在水平方向(沿x轴方向),或在垂直方向(沿y轴方向)移动。
![](http://img.blog.csdn.net/20150629221207603?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjAwNTMxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150629221309589?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjAwNTMxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
void Translation(void) {//平移变换 值为正表示向轴正向移动,值为负表示向轴负向移动 cout<<"输入水平移动距离:"; int disx=0; cin>>disx; cout<<"输入垂直移动距离:"; int disy=0; cin>>disy; cout<<"水平移动距离为:"<<disx<<endl; cout<<"垂直移动距离为:"<<disy<<endl; IplImage *img=cvLoadImage("lena.jpg"); if (img == NULL) exit(0); IplImage *res=cvCreateImage(cvGetSize(img), img->depth, img->nChannels); if (res == NULL) exit(0); for (int i=0; i<img->height; i++) { for (int j=0; j<img->width; j++) { CvScalar color=cvGet2D(img, i, j); cvSet2D(res, (i+disy)%img->height, (j+disx)%img->width, color); } } cvNamedWindow("src"); cvNamedWindow("res"); cvShowImage("src", img); cvShowImage("res", res); cvWaitKey(0); cvReleaseImage(&img); cvReleaseImage(&res); cvDestroyAllWindows(); }
相关文章推荐
- Linux输入输出重定向
- 底层架构的搭建
- hadoop yarn resouce manager如何避免单点问题
- MySQL在Linux Ubuntu中安装
- mysql备份单实例(一)shell
- Apache Qpid Broker的安全机制
- linux下的蓝牙驱动程序详解
- 谈谈对AOP的认识三——优化AOP,进一步解耦
- linux0.12之内存管理(1)-整体框架思路
- linux内核之关于内存屏障
- MyEclipse2015+Tomcat+MAVEN+SVN项目环境搭建
- 质量管理:测试基础架构图
- 最全最强解析:支付宝钱包系统架构内部剖析(架构图)
- vi编辑器的常用命令
- 谈谈对AOP的认识三——优化AOP,进一步解耦
- OpenCV2第一个马拉松8环——画一个柱状图
- Linux性能分析top iostat vmstat free
- linux常见问题
- linux程序设计——调试(第十章)
- linux shell-syntax error near unexpected token错误