图像处理算法系列 第五章 图像合成

这篇文章将讲述图片合成的例子。


如何将两个图片合成一张图片呢?

这个问题看起来很深奥,包括ps上面其实用的最多的东西也属于图片合成技术。

但是线性的图片合成其实很简单。


一原理:

两个图片的融合,首先两个图片大小必须一致,如果不一致怎么办,要使用ROI区域,找到大图片中要和小图片进行融合的尺寸。

两个图片的像素值,按照给定的比例进行叠加,就可以将两个图片融合起来。

二算法:


算法很简单,通过原理可以很简单的看到算法的实现,这里不罗嗦了,想了解更多的请看:
http://docs.opencv.org/doc/tutorials/core/adding_images/adding_images.html?highlight=blend

三 代码


void blendTwoImage(Mat src1,float alpa, Mat src2, float beta, float gama, Mat &dst)
{
	dst.create(src1.size(),src1.type());
	uchar *psrc1;
	uchar *psrc2;
    uchar *pdst;

	

	int channels = src1.channels();

	std::cout<(i);
		psrc2 = src2.ptr(i);
		pdst = dst.ptr(i);

		for (int j =0; j 255)
				B = 255;
			if (G>255)
				G = 255;
			if (R>255)
				R = 255;
			pdst[j*channels] = B;
			pdst[j*channels + 1] = G;
			pdst[j*channels + 2] = R;
			//std::cout<


四效果图
原始 本文
图像处理算法系列 第五章 图像合成_第1张图片 图像处理算法系列 第五章 图像合成_第2张图片

你可能感兴趣的:(c/c++,视频音频图像处理算法)