水平图像转换,使用连续的水平转换和绝对值差检查垂直轴对称(flip_mode > 0)水平和垂直同时转换,用于连续的水平转换和绝对真理值差检查中心对称s(flip_mode < 0)翻转1维指针数组的顺序(flip_mode > 0)
#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)