OpenCV学习笔记之图像融合
生活随笔
收集整理的這篇文章主要介紹了
OpenCV学习笔记之图像融合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、線性融合操作
?線性混合操作?也是一種典型的二元(兩個輸入)的?像素操作?:
通過在范圍??內改變??,這個操可以用來對兩幅圖像或兩段視頻產生時間上的?畫面疊化?(cross-dissolve)效果,就像在幻燈片放映和電影制作中那樣
二、操作實踐
#include <QCoreApplication> #include <iostream> #include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/imgcodecs.hpp> #include <QDebug> #include <QDir> #include <QFile> #include "iostream"using namespace std; using namespace cv;int main() {double alpha = 0.5; double beta;Mat src1, src2, dst;//! 讀取圖片src1 = imread("C:/2.png");src2 = imread("C:/3.png");if( !src1.data ) { qDebug("Error loading src1 \n"); return -1; }if( !src2.data ) { qDebug("Error loading src2 \n"); return -1; }//! 調整兩幅圖片保持一致,否則會出錯resize(src2, src2, Size(src1.cols, src1.rows));beta = ( 1.0 - alpha );addWeighted( src1, alpha, src2, beta, 0.0, dst);imshow( "Linear Blend", dst );waitKey(0);return 0; }??
src1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? src2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?dst
參考資料:
- 使用OpenCV對兩幅圖像求和(求混合(blending))
附錄1:addWeighted()函數實現圖像線性混合
void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1); 第一個參數,InputArray類型的src1,表示需要加權的第一個數組,常常填一個Mat。 第二個參數,alpha,表示第一個數組的權重 第三個參數,src2,表示第二個數組,它需要和第一個數組擁有相同的尺寸和通道數。 第四個參數,beta,表示第二個數組的權重值。 第五個參數,dst,輸出的數組,它和輸入的兩個數組擁有相同的尺寸和通道數。 第六個參數,gamma,一個加到權重總和上的標量值??聪旅娴氖阶幼匀粫斫?。 第七個參數,dtype,輸出陣列的可選深度,有默認值-1。;當兩個輸入數組具有相同的深度時,這個參數設置為-1(默認值),即等同于src1.depth()。?
總結
以上是生活随笔為你收集整理的OpenCV学习笔记之图像融合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV学习笔记之掩码操作
- 下一篇: OpenCV学习笔记之改变图像的对比度和