This OpenCV Tutorial is about shifting an image in a window/performing image translation by varying the position on the slider with the help of Trackbars.
Refer the OpenCV C++ Example of Image Translation with the help of Trackbars below:
Refer the OpenCV C++ Example of Image Translation with the help of Trackbars below:
// OpenCV C++ Code for Image Translation Using TRackbars #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; Mat src1,src2; int intensity_slider_max_x , intensity_slider_max_y , slider_valuex=0 , slider_valuey=0 ; void on_trackbar_x(int , void*){ src2 = Mat::zeros( src1.rows, src1.cols, CV_8UC3 ); for (int i=slider_valuex; i<src1.cols ; i++){ for (int j=slider_valuey ; j<src1.rows ; j++) { Vec3b color1 = src1.at<Vec3b>(Point(i-slider_valuex,j-slider_valuey)); Vec3b color2 = src2.at<Vec3b>(Point(i,j)); color2.val[0] = color1.val[0]; color2.val[1] = color1.val[1]; color2.val[2] = color1.val[2]; src2.at<Vec3b>(Point(i,j)) = color2; } } imshow("Translated Image", src2); } void on_trackbar_y(int , void*){ src2 = Mat::zeros( src1.rows, src1.cols, CV_8UC3 ); for (int i=slider_valuex; i<src1.cols ; i++){ for (int j=slider_valuey ; j<src1.rows ; j++) { Vec3b color1 = src1.at<Vec3b>(Point(i-slider_valuex,j-slider_valuey)); Vec3b color2 = src2.at<Vec3b>(Point(i,j)); color2.val[0] = color1.val[0]; color2.val[1] = color1.val[1]; color2.val[2] = color1.val[2]; src2.at<Vec3b>(Point(i,j)) = color2; } } imshow("Translated Image", src2); } int main() { src1 = imread("C:\\Users\\arjun\\Desktop\\opencv-logo.png",CV_LOAD_IMAGE_COLOR); if( !src1.data ) { printf("Error loading src1 \n"); return -1;} intensity_slider_max_x=src1.rows; intensity_slider_max_y=src1.cols; namedWindow("Translated Image",CV_WINDOW_AUTOSIZE); createTrackbar( "TranslationX", "Translated Image", &slider_valuex, intensity_slider_max_x, on_trackbar_x ); createTrackbar( "TranslationY", "Translated Image", &slider_valuey, intensity_slider_max_y, on_trackbar_y ); /// trackbar on_change function on_trackbar_x( slider_valuex,0 ); on_trackbar_y( slider_valuey,0 ); namedWindow("Original Image",CV_WINDOW_AUTOSIZE); imshow("Original Image", src1); waitKey(0); return 0; }