iOS使用OpenCV之图像融合(二)

前言

  • 本文将介绍使用OpenCV之图像融合

理论

线性混合操做
g(x)=(1−α)f0(x) + αf1(x)
其中α取值范围0~1之间,f0(x)表示一张图像x位置像素点的颜色数据,f1(x)表示另外一张图像x位置像素点的颜色数据git

核心思路

一、判断两张图片大小是否一致
二、UIImage转换
三、判断类型是否一致
四、图片叠加处理addWeighted(src, alpha, src2, 1.0-alpha, 0.0, dst)
五、转换为UIImagegithub

代码演示

/* 图片混合,前提条件两张图片必须大小和类型均一致 */
- (UIImage*)kj_opencvBlendImage:(UIImage*)image alpha:(double)alpha{
    if (!CGSizeEqualToSize(self.size, image.size)) {
        image = [image kj_BitmapChangeImageSize:self.size];
    }
    cv::Mat src,src2,dst;
    UIImageToMat(self,src,true);
    UIImageToMat(image,src2,true);
    if (src.type() != src2.type()) {
        return self;
    }
    addWeighted(src, alpha, src2, 1.0-alpha, 0.0, dst);
    
    return kMatToUIImage(dst);
}
复制代码

示例图

系列文章关联

一、如何在 iOS 工程中使用 OpenCV
二、iOS使用OpenCV之调整图片亮度和对比度(一)
三、iOS使用OpenCV之图像融合(二)
四、iOS使用OpenCV之滤波处理(三)算法

接下来我会慢慢补充Opencv的相关文章,暂时已将常见的图片处理和图片算法封装出来,有须要的朋友能够去pod 'KJExtensionHandler/Opencv'markdown

如何在 iOS 工程中使用 OpenCV介绍就到此完毕,后面有相关再补充,写文章不容易,还请点个**小星星**传送门

相关文章
相关标签/搜索