Code to flip an Image along X axis:
Output:
Code to flip an Image along Y axis:
Output:
Code to flip an Image along both the axis:
Output:
// OpenCV Image Flipping along X axis Tutorial
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat src1,src2;
src1 = imread("C:\\Users\\arjun\\Desktop\\arj.jpg",CV_LOAD_IMAGE_COLOR);
src2=src1.clone();
if( !src1.data ) { printf("Error loading src1 \n"); return -1;}
if( !src2.data ) { printf("Error loading src2 \n"); return -1;}
cout<<"src1.rows="<<src1.rows<<endl;
cout<<"src1.cols="<<src1.cols<<endl;
for (int i=0 ; i<src1.cols ; i++){
for (int j=0 ; j<src1.rows ; j++)
{
Vec3b color2 = src1.at<Vec3b>(Point(i,j));
Vec3b color1 = src2.at<Vec3b>(Point((src1.cols-1)-i,j));
color2.val[0] = color1.val[0];
color2.val[1] = color1.val[1];
color2.val[2] = color1.val[2];
src1.at<Vec3b>(Point(i,j)) = color1;
}
}
namedWindow("Display Flipped Image",CV_WINDOW_AUTOSIZE);
imshow("Display Flipped Image", src1);
//imwrite( "C:\\Users\\arjun\\Desktop\\X-axis_flip.jpg",src1);
namedWindow("Original Image",CV_WINDOW_AUTOSIZE);
imshow("Original Image", src2);
waitKey(0);
return 0;
}
Input:Output:
Code to flip an Image along Y axis:
// OpenCV Image Flipping along Y axis Tutorial
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat src1,src2;
src1 = imread("C:\\Users\\arjun\\Desktop\\arj.jpg",CV_LOAD_IMAGE_COLOR);
src2=src1.clone();
if( !src1.data ) { printf("Error loading src1 \n"); return -1;}
if( !src2.data ) { printf("Error loading src2 \n"); return -1;}
cout<<"src1.rows="<<src1.rows<<endl;
cout<<"src1.cols="<<src1.cols<<endl;
for (int i=0 ; i<src1.cols ; i++){
for (int j=0 ; j<src1.rows ; j++)
{
Vec3b color2 = src1.at<Vec3b>(Point(i,j));
Vec3b color1 = src2.at<Vec3b>(Point(i,(src1.rows-1)-j));
color2.val[0] = color1.val[0];
color2.val[1] = color1.val[1];
color2.val[2] = color1.val[2];
src1.at<Vec3b>(Point(i,j)) = color1;
}
}
namedWindow("Display Flipped Image",CV_WINDOW_AUTOSIZE);
imshow("Display Flipped Image", src1);
imwrite( "C:\\Users\\arjun\\Desktop\\Y-axis_flip.jpg",src1);
namedWindow("Original Image",CV_WINDOW_AUTOSIZE);
imshow("Original Image", src2);
waitKey(0);
return 0;
}
Input:Output:
Code to flip an Image along both the axis:
// OpenCV Image Flipping along both the axis Tutorial
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat src1,src2;
src1 = imread("C:\\Users\\arjun\\Desktop\\arj.jpg",CV_LOAD_IMAGE_COLOR);
src2=src1.clone();
if( !src1.data ) { printf("Error loading src1 \n"); return -1;}
if( !src2.data ) { printf("Error loading src2 \n"); return -1;}
cout<<"src1.rows="<<src1.rows<<endl;
cout<<"src1.cols="<<src1.cols<<endl;
for (int i=0 ; i<src1.cols ; i++){
for (int j=0 ; j<src1.rows ; j++)
{
Vec3b color2 = src1.at<Vec3b>(Point(i,j));
Vec3b color1 = src2.at<Vec3b>(Point((src1.cols-1)-i,(src1.rows-1)-j));
color2.val[0] = color1.val[0];
color2.val[1] = color1.val[1];
color2.val[2] = color1.val[2];
src1.at<Vec3b>(Point(i,j)) = color1;
}
}
namedWindow("Display Flipped Image",CV_WINDOW_AUTOSIZE);
imshow("Display Flipped Image", src1);
imwrite( "C:\\Users\\arjun\\Desktop\\Both-axis_flip.jpg",src1);
namedWindow("Original Image",CV_WINDOW_AUTOSIZE);
imshow("Original Image", src2);
waitKey(0);
return 0;
}
Input:Output:



No comments:
Post a Comment