opencv 图像融合
void cvAddWeighted(
const CvArr* src1, double alpha,
const CvArr* src2,
double beta,
double gamma,
CvArr* dst
);
在 cvAddWeighted()中,有两个源图象 src1 和 src2。 这两个图象可以是任
何象素类型,只要它们的类型相同。它们可以是单通道或是三通道,只要它们相
符。运算结果的目标图象,dst,必须和 src1 和 src2 有相同的象素类型。这些
图象可以是不同的尺寸,但它们的 ROI 必须有相同的大小,否则 OpenCV 会报
告一个错误。参数 alpha 是 src1 的混合强度,beta 是 src2 的混合强度。alpha
混合的计算公式为:
你可以可 alpha 取值为 0 至 1,beta 取值 1-beta,gama 取值为 0,上述公式
就转换为标准的 alpha 混合公式:
#include
#include
int main(int argc, char* argv[])
{
IplImage *src1, *src2;
src1=cvLoadImage("1.jpg",1);
src2=cvLoadImage("2.jpg",1);
int x =0;
int y =0;
int width =100;
int height =200;
double alpha =0.3;
double beta =0.5;
cvSetImageROI(src1, cvRect(0,0,width,height));
cvSetImageROI(src2, cvRect(0,0,width,height));
cvAddWeighted(src1, alpha, src2, beta,0.0,src1);
cvResetImageROI(src1);
cvNamedWindow( "Alpha_blend", 1 );
cvShowImage( "Alpha_blend", src1 );
cvWaitKey();
return 0;
}