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







你可能感兴趣的:(opencv,图像处理)