OpenCV alpha(权因子) 融合举例
生活随笔
收集整理的這篇文章主要介紹了
OpenCV alpha(权因子) 融合举例
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
基于函數(shù)cv::addWeighted實(shí)現(xiàn)線性融合,目標(biāo)公式如下:
g(x)=(1?α)f0(x)+αf1(x) 公式(1) 其中 g(x)為目標(biāo)(結(jié)果)圖像, f0(x) 和 f1(x)為兩個(gè)待融合圖像。 α 的范圍為 0→1函數(shù):
void cv::addWeighted ( InputArray? src1,double? alpha,InputArray? src2,double? beta,double gamma,OutputArray? dst,int? dtype = -1 )
完成的公式為:
dst=α?src1+β?src2+γ ? 公式(2)
要完成目標(biāo)公式公式(1),只需要公式(2)中gamma為0即可, β=1-α,
代碼如下:
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv;int main( int argc, char** argv ) {double alpha = 0.5; double beta; double input;Mat src1, src2, dst;std::cout<<" Simple Linear Blender "<<std::endl;std::cout<<"-----------------------"<<std::endl;std::cout<<"* Enter alpha [0-1]: ";std::cin>>input;if( input >= 0.0 && input <= 1.0 ){ alpha = input; }src1 = imread("LinuxLogo.jpg");src2 = imread("WindowsLogo.jpg");if( !src1.data ) { printf("Error loading src1 \n"); return -1; }if( !src2.data ) { printf("Error loading src2 \n"); return -1; }beta = ( 1.0 - alpha );addWeighted( src1, alpha, src2, beta, 0.0, dst);namedWindow("Linear Blend", 1);imshow( "Linear Blend", dst );waitKey(0);return 0; }原圖
結(jié)果
總結(jié)
以上是生活随笔為你收集整理的OpenCV alpha(权因子) 融合举例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 矩阵的掩模操作(锐化举例)
- 下一篇: 基于OpenCV调整图像的对比度和亮度