图像处理——alpha融合

图像叠加有cvAdd(),cvAddS(),cvAddWeighted()函数,其中cvAddWeighted()是可以根据权重进行融合~~水印大概就是可以根据这个做出来的


原图:test1test2

          


创建空白的img3和img4(对比cvAddWeighted()函数中的gamma的作用,但是发现不了明显的区别啊)


CVAPI(void)  cvAddWeighted( const CvArr* src1, double alpha,
                            const CvArr* src2, double beta,
                            double gamma, CvArr* dst );


#include <highgui.h>

using namespace std;
int x=0,y=0,height=320,length=480;
double alpha=0.7,beta=0.3;

int main()
{
	IplImage *img1 = cvLoadImage("test1.jpg");
	IplImage *img2 = cvLoadImage("test2.jpg");
	IplImage *img3 = cvCreateImage( cvSize(320,480),IPL_DEPTH_8U,3 );
	IplImage *img4 = cvCreateImage( cvSize(320,480),IPL_DEPTH_8U,3 );

	cvNamedWindow("Example1",CV_WINDOW_AUTOSIZE);
	cvShowImage("Example1",img1);
	cvNamedWindow("Example2",CV_WINDOW_AUTOSIZE);
	cvShowImage("Example2",img2);
	cvWaitKey(0);
	cvDestroyWindow("Example1");
	cvDestroyWindow("Example2");

	cvSetImageROI( img1,cvRect(0,0,height,length) );
	cvSetImageROI( img2,cvRect(0,0,height,length) );
	cvAddWeighted(img1, alpha, img2, beta,10.0,img3); 
	cvAddWeighted(img1, alpha, img2, beta,0.5,img4); 
	cvResetImageROI(img1);         
	cvNamedWindow( "Mixed1", CV_WINDOW_AUTOSIZE );         
	cvShowImage( "Mixed1", img3 );  
	cvNamedWindow( "Mixed2", CV_WINDOW_AUTOSIZE );         
	cvShowImage( "Mixed2", img4 );   
	cvWaitKey();    

	cvDestroyWindow("Mixed1");
	cvDestroyWindow("Mixed2");
	cvReleaseImage( &img1 );
	cvReleaseImage( &img2 );
	cvReleaseImage( &img3 );
	cvReleaseImage( &img4 );

	return 0; 
}

运行结果:

       

你们觉得这两个图有区别!?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值