opencv 数字图象处理 图像平移变换

图像平移(Translation)变换是图像几何变换中最为简单的一种变换,是将一副图像中的所有像素都按照给定的偏移量在水平方向(沿x轴方向),或在垂直方向(沿y轴方向)移动。


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();	
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值