美文网首页
使用OpenCV (iOS)对两幅图像求和(求混合(blendi

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

作者: 傻傻小萝卜 | 来源:发表于2017-05-03 15:19 被阅读111次

    原理

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

    通过在范围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))


    相关文章

      网友评论

          本文标题:使用OpenCV (iOS)对两幅图像求和(求混合(blendi

          本文链接:https://www.haomeiwen.com/subject/gcgktxtx.html