您的位置:首页 > 运维架构

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

2015-06-29 22:05 429 查看
图像平移(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();
}






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: