1. Load an image and display it
//Loads image and displays #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> int main() { cv::Mat image = cv::imread("spots2.jpg", CV_LOAD_IMAGE_COLOR); if( false == image.data ) { std::cout << "Could not open or find the image" << std::endl ; return -1; } cv::namedWindow( "Display window", cv::WINDOW_AUTOSIZE ); cv::imshow( "Display window", image ); cv::waitKey(0); return 0; }
2. Add a trackbar to blend two images
#include <cv.h> #include <highgui.h> const int alpha_slider_max = 100; int alpha_slider; double alpha; double beta; cv::Mat src1; cv::Mat src2; cv::Mat dst; void on_trackbar( int, void* ) { alpha = (double) alpha_slider/alpha_slider_max ; beta = ( 1.0 - alpha ); cv::addWeighted( src1, alpha, src2, beta, 0.0, dst); cv::imshow( "Linear Blend", dst ); } int main( int argc, char** argv ) { // Read image ( same size, same type ) src1 = cv::imread("LinuxLogo.jpg"); src2 = cv::imread("WindowsLogo.jpg"); if( false == src1.data ) { std::cout << "Error loading src1" << std::endl; return -1; } if( false == src2.data ) { std::cout << "Error loading src2" << std::endl; return -1; } alpha_slider = 0; // Create Windows and trackbars cv::namedWindow("Linear Blend", 1); char TrackbarName[50]; sprintf( TrackbarName, "Alpha x %d", alpha_slider_max ); cv::createTrackbar( TrackbarName, "Linear Blend", &alpha_slider, alpha_slider_max, on_trackbar ); on_trackbar( alpha_slider, 0 ); // Wait until user presses some key cv::waitKey(0); return 0; }