-
[The Core Functionality] Adding (blending) two images using Open CVComputer Vision 2020. 7. 25. 21:20
https://docs.opencv.org/master/d5/dc4/tutorial_adding_images.html
2차원 연산자는 "선형 혼합 연산자 ( Linear Blend Operator) " 이다.
g ( x ) = ( 1 − α ) f0( x ) + α f1( x )
α 값을 0 -> 1로 변화시키면서 이 연산자는 Can be used to perfomr a temporal cross-dissolve between two images or videos, as see nin slide shows and film productions
두개의 이미지 f0(x) 와 f1(x)를 src1, src2 로 각각 로드해 온다.
src1 = imread("berlin01.JPG"); src2 = imread("berlin02.JPG");
그 다음 g(x) 이미지를 생성해야한다.
이를 위해 Open CV의 addWeighted() 함수를 사용한다.
beta = (1.0 - alpha); addWeighted(src1, alpha, src2, beta, 0.0, dst);
addWeighted()함수는 다음을 생성한다.
dst = α ⋅ src1 + β ⋅ src2 + γ
여기서 감마값은 0.0으로 설정한다.
#include <iostream> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace cv; // we're NOT "using namespace std;" here, to avoid collisions between the beta variable and std::beta in c++17 using std::cin; using std::cout; using std::endl; int main(void) { Mat src1, src2, dst; double alpha = 0.5; double beta; double input; cout<<" Simple Linear Blender " <<endl; cout<<" - - - - - - - - - - - " <<endl; cout<<"* Enter alpha [0.0-1.0]: "; cin>>input; if(input>= 0 && input <= 1) alpha = input; src1 = imread("berlin01.JPG"); src2 = imread("berlin02.JPG"); if(src1.empty()){ cout<<"Error loading src1"<<endl; return EXIT_FAILURE; } if(src2.empty()){ cout<<"Error loading src2"<<endl; return EXIT_FAILURE; } beta = (1.0 - alpha); addWeighted(src1, alpha, src2, beta, 0.0, dst); imshow("Berlin 01", src1); imshow("Berlin 02", src2); imshow("Linear Blend", dst); waitKey(0); return 0; }
'Computer Vision' 카테고리의 다른 글
[The Core Functionality] Changing the contrast and brightness of an Image (0) 2020.07.25 [The Core Functionality] Operations with Images (0) 2020.07.25 [The Core Functionality] Mask Operations on Matices (0) 2020.07.25 [The Core Functionality] How to scan Images, Lookup tables with Open CV (0) 2020.07.25 [Introduction to OpenCV] Load, Modify, and Save an Image (0) 2020.07.25