您的位置:首页 > 其它

用cvFlip实现图像翻转

2012-05-01 15:13 190 查看
水平图像转换,使用连续的水平转换和绝对值差检查垂直轴对称(flip_mode > 0)水平和垂直同时转换,用于连续的水平转换和绝对真理值差检查中心对称s(flip_mode < 0)翻转1维指针数组的顺序(flip_mode > 0)



TAG: 图像翻转 cvFlip 左右翻转 上下翻转
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
IplImage *pSrcImg = NULL;
IplImage *pClnImg = NULL;

pSrcImg = cvLoadImage("F:\\OpenCV\\test images\\fruits.jpg", 1);
if (pSrcImg == NULL)
{
printf("Fail to load images\n");
return -1;
}

pClnImg = cvCloneImage(pSrcImg);
if (pClnImg == NULL)
{
printf("Fail to clone the image\n");
return -1;
}

cvFlip(pClnImg, NULL, 1);

cvNamedWindow("src", 1);
cvNamedWindow("turnover", 1);
cvShowImage("src", pSrcImg);
cvShowImage("turnover", pClnImg);
cvWaitKey(0);
cvReleaseImage(&pSrcImg);
cvReleaseImage(&pClnImg);
cvDestroyWindow("src");
cvDestroyWindow("turnover");

return 0;
}


Flip函数原型声明为void cvFlip( const CvArr* src, CvArr* dst=NULL, int flip_mode=0);

flip_mode = 0 沿X-轴翻转,

flip_mode > 0 (如 1) 沿Y-轴翻转,

flip_mode < 0 (如 -1) 沿X-轴和Y-轴翻转.

见下面的公式

函数cvFlip 以三种方式之一翻转数组 (行和列下标是以0为基点的):

dst(i,j)=src(rows(src)-i-1,j) if flip_mode = 0

dst(i,j)=src(i,cols(src1)-j-1) if flip_mode > 0

dst(i,j)=src(rows(src)-i-1,cols(src)-j-1) if flip_mode < 0

垂直翻转图像(flip_mode > 0)用于 顶-左和底-左图像结构的转换, 主要用于WIN32系统下的视频操作处理.

水平图像转换,使用连续的水平转换和绝对值差检查垂直轴对称(flip_mode > 0)

水平和垂直同时转换,用于连续的水平转换和绝对真理值差检查中心对称s(flip_mode < 0)

翻转1维指针数组的顺序(flip_mode > 0)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: