使用OpenCV (iOS)对两幅图像求和(求混合(blending))(6)

原理

线性混合操作也是一种典型的二元(两个输入)的像素操作

通过在范围0~1内改变,这个操作可以用来对两幅图片或者两段视频产生时间上的画面叠化。

主要代码

使用addWeighted来进行两张图像求和(这两站图片的像素必须是一样的)

(1)addWeighted的参数

addWeighted(InputArray src1,// 图像一 src1

                         double alpha,// 图像一 alpha 值

                          InputArray src2,// 图像二 src2

                           double  beta,// 图像二 beta 值

                            double  gamma,// gamma 值

                             OutputArray dst,// 合成后的 图像 

                            dstintd type =-1)// 我代码中省略了

(2)实际上addWeight的操作

实际上addWeighted进行了如下计算:

addWeighted算法(这里的alpha、beta、gamma都用英文表示)

(3)在xcode中合成的代码

double alpha,beta;

Mat src1,src2,dst;

UIImage *image1 = [UIImage imageNamed:@"01.jpg"];

UIImage *image2 = [UIImage imageNamed:@"02.jpg"];

UIImageToMat(image1, src1);

UIImageToMat(image2, src2);

alpha = 0.5;

beta = 1-alpha;

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

imagView2.image = MatToUIImage(dst);

实现效果


参考文章

OpenCV for iOS 学习笔记(五)—— 使用OpenCV合成两张图片

使用OpenCV对两幅图像求和(求混合(blending))


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容