1. 程式人生 > >OpenCV基礎篇之圖片疊加

OpenCV基礎篇之圖片疊加

程式及分析

/*
 * FileName : blend.cpp
 * Author   : xiahouzuoxin @163.com
 * Version  : v1.0
 * Date     : Mon 28 Jul 2014 08:47:59 PM CST
 * Brief    : 
 * 
 * Copyright (C) MICL,USTB
 */
#include <cv.h>
#include <highgui.h>
#include <stdio.h>

using namespace std;
using namespace cv;

int main
(int argc, char *argv[]) { double alpha = 0.5; double beta; double input; Mat src1, src2, dst; // User input alpha cout<<"Simple Linear Blender" << endl; cout<<"---------------------" << endl; cout<<"Enter alpha [0-1]: "; cin>>input
; if (alpha >=0 && alpha <=1) { alpha = input; } // Read images src1 = imread("../test_imgs/KeNan.jpg"); src2 = imread("../test_imgs/Background.jpg"); if (!src1.data) { cout<<"Error loading src1\n"<<endl; return -1; } if (
!src2.data) { cout<<"Error loading src2\n"<<endl; return -1; } // Create WIndows namedWindow("Linear Blend", 1); beta = (1.0 - alpha); addWeighted(src1, alpha, src2, beta, 0.0, dst); imshow("Linear Blend", dst); waitKey(0); return 0; }

這裡的影象疊加指線性疊加,設影象A的畫素為fA(x),影象B的畫素為fB(x),疊加係數為α,則線性疊加操作為:

α為0-1之間的值,從上面也可以看出,疊加必需保證兩幅輸入影象的尺寸大小相同。程式中的

addWeighted(src1, alpha, src2, beta, 0.0, dst);

完成疊加操作。

效果

result