opencv3學習之addWeight()函式
//15.addWeighted()實現影象線性混合效果,就像是PPT的動畫效果那樣,兩層影象融合在一起,注意疊加混合和線性混合是不同的,疊加像是個logo直接粘過去,而線性混合是將兩幅圖融合在一起,朦朦朧朧那種
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
usingnamespacecv;
bool LinearBlending(){
double alphaValue=0.5;
double betaValue;
Mat srcImage2,srcImage3,dstImage;
srcImage2=imread("/Users/oumoemoe/Downloads/alpha.png");
srcImage3=imread("/Users/oumoemoe/Downloads/girl.png");
Mat imageROI=srcImage3(Rect(0,0,srcImage2.cols,srcImage2.rows));//這個addWeighted函式要求兩個影象的尺寸和型別都一樣,所以我就設定了這個ROI感興趣區域,把大一點的那張圖擷取裡一些,這個屬於自己的想法加上去的,學會思考了,哈哈哈給自己點個贊
if(!srcImage2.data){printf("srcImage2讀取失敗\n");returnfalse;}
if(!srcImage3.data){printf("srcImage3讀取失敗\n");returnfalse;}
betaValue=1.0-alphaValue;//函式的意思我明白,但是這個值的設定還不是很懂
addWeighted(srcImage2, alphaValue, imageROI, betaValue,0.0, dstImage);
namedWindow("原圖",1);
imshow("原圖", srcImage2);
namedWindow
imshow("處理後", dstImage);
returntrue;
}
int main(){
LinearBlending();
waitKey(0);//經常忘記這條語句,然後程式什麼都不輸出,馬虎
return0;
}