Syntax:
C++: void flip(InputArray src, OutputArray dst, int flipCode)
Flips a 2D array around vertical, horizontal, or both axes.
src – input array.
dst – output array of the same size and type as src.
flipCode – a flag to specify how to flip the array.
0 means flipping around the x-axis
positive value (for example, 1) means flipping around y-axis
Negative value (for example, -1) means flipping around both axes
Here is the code of flipping the image:
// OpenCV Image Flipping Tutorial
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
double alpha, beta;
Mat src1,src2;
// Read image (same size, same type )
src1 = imread("C:\Users\arjun\Desktop\flipsrc.jpg");//Linux.jpg");//atom.jpg");//"Linux.jpg"); //f1.jpg
if( !src1.data ) { printf("Error loadind src1 n"); return -1;}
//Create Window
namedWindow("Original Image", CV_WINDOW_AUTOSIZE );
imshow( "Original Image", src1 );
flip(src1,src2,0);
namedWindow("Flip-x-axis", CV_WINDOW_AUTOSIZE );
imshow( "Flip-x-axis", src2 );
imwrite( "C:\Users\arjun\Desktop\flipXaxis.jpg",src2);
flip(src1,src2,1);
namedWindow("Flip-y-axis", CV_WINDOW_AUTOSIZE );
imshow( "Flip-y-axis", src2 );
imwrite( "C:\Users\arjun\Desktop\flipYaxis.jpg",src2);
flip(src1,src2,-1);
namedWindow("Flip-z-axis", CV_WINDOW_AUTOSIZE );
imshow( "Flip-z-axis", src2 );
imwrite( "C:\Users\arjun\Desktop\flipZaxis.jpg",src2);
waitKey(0);
return 0;
}
Input Image:
Output:
Flipping around the X axis
Flipping around the Y axis
Flipping around both the axis
We can also put the flip function under for loop and obtain the three flipping of an image as shown below:
// OpenCV Image Flipping Tutorial
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
double alpha, beta;
Mat src1,src2;
// Read image (same size, same type )
src1 = imread("C:\\Users\\arjun\\Desktop\\arj.jpg");
if( !src1.data ) { printf("Error loading src1 n"); return -1;}
//Create Window
namedWindow("Original Image", CV_WINDOW_AUTOSIZE );
imshow( "Original Image", src1 );
for(int i=-1;i<2;i++)
{
flip(src1,src2,i);
namedWindow("Flip", CV_WINDOW_AUTOSIZE );
imshow( "Flip", src2 );
waitKey(5000);
}
waitKey(0);
return 0;
}
Output:



No comments:
Post a Comment