两个图像的融合就是像素的融合了,其实手动操作即可,用函数操作更方便了。
下面代码的作用是融合阿狸和doctor,很和谐有木有!
#include <cv.h> #include <highgui.h> int main(int argc,char **argv) { IplImage *src1 = cvLoadImage(argv[1],1); IplImage *src2 = cvLoadImage(argv[2],1); cvNamedWindow("image output"); cvSetImageROI(src1,cvRect(70,70,81,108)); //cvSetImageROI(src2,cvRect(0,0,81,108)); cvAddWeighted(src1, 1, src2, 1, -256, src1); cvResetImageROI(src1); cvShowImage("image output", src1); cvWaitKey(); cvReleaseImage(&src1); cvReleaseImage(&src2); cvDestroyWindow("image output"); return 0; }
核心函数是cvAddWeighted,这里是1+1的融合,-256应该是融合后的亮度增益吧,我调到最小了。如果这个不调的话阿狸会有白色区域的,不太好看。
阿狸素材: