W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在本教程中,您將學(xué)習(xí):
從我們以前的教程中,我們已經(jīng)知道了一些像素運算符。一個有趣的二元(雙輸入)運算符是線性混合運算符:
通過從0 \ rightarrow 1改變,此運算符可用于執(zhí)行兩個圖像或視頻之間的時間交叉解,如幻燈片放映和電影制作(cool,eh?)所示。α0→1
從這里下載源代碼。
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main( void )
{
double alpha = 0.5; double beta; double input;
Mat src1, src2, dst;
cout << " Simple Linear Blender " << endl;
cout << "-----------------------" << endl;
cout << "* Enter alpha [0-1]: ";
cin >> input;
// We use the alpha provided by the user if it is between 0 and 1
if( input >= 0 && input <= 1 )
{ alpha = input; }
src1 = imread( "../data/LinuxLogo.jpg" );
src2 = imread( "../data/WindowsLogo.jpg" );
if( src1.empty() ) { cout << "Error loading src1" << endl; return -1; }
if( src2.empty() ) { cout << "Error loading src2" << endl; return -1; }
beta = ( 1.0 - alpha );
addWeighted( src1, alpha, src2, beta, 0.0, dst);
imshow( "Linear Blend", dst );
waitKey(0);
return 0;
}
我們需要兩個源圖像(和)。所以,我們以通常的方式加載它們:f0(x)f1(x)
src1 = imread(“../data/LinuxLogo.jpg”);
src2 = imread(“../data/WindowsLogo.jpg”);
警告
由于我們添加 src1和src2,它們必須具有相同的大?。▽捄透撸┖皖愋?。
g(x)
圖像。為此,函數(shù)cv :: addWeighted非常方便: β=(1.0-α);
addWeighted(src1,alpha,src2,beta,0.0,dst);
因為cv :: addWeighted產(chǎn)生:
在這種情況下,gamma
是上面代碼中的參數(shù)。0.0
imshow( "Linear Blend", dst );
waitKey(0);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: