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

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

前言


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


理论


线性混合操作

g(x)=(1−α)f0(x) + αf1(x)

其中α取值范围0~1之间,f0(x)表示一张图像x位置像素点的颜色数据,f1(x)表示另一张图像x位置像素点的颜色数据


核心思路


1、判断两张图片大小是否一致

2、UIImage转换

3、判断类型是否一致

4、图片叠加处理addWeighted(src, alpha, src2, 1.0-alpha, 0.0, dst)

5、转换为UIImage


代码演示


/* 图片混合,前提条件两张图片必须大小和类型均一致 */
- (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);
}


示例图

1.png


系列文章关联


1、如何在 iOS 工程中使用 OpenCV

2、iOS使用OpenCV之调整图片亮度和对比度(一)

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

4、iOS使用OpenCV之滤波处理(三)


接下来我会慢慢补充Opencv的相关文章,暂时已将常见的图片处理和图片算法封装出来,有需要的朋友可以去pod 'OpencvQueen'


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

相关文章
|
4天前
|
算法 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
|
10天前
|
安全 Android开发 数据安全/隐私保护
未来之光:Android与iOS的融合趋势
【6月更文挑战第7天】在数字时代的浪潮中,Android和iOS这两大操作系统如同双子星般各自闪耀,引领着移动技术的进步。然而,随着技术的演进和用户需求的多样化,这两个系统开始逐渐展现出相互融合的趋势。本文将探讨这种融合的可能性、挑战以及它对开发者和用户的潜在影响。
|
11天前
|
存储 编解码 API
【图像文本化】Base64编解码OpenCV4中 Mat 对象
【图像文本化】Base64编解码OpenCV4中 Mat 对象
12 0
|
11天前
|
机器学习/深度学习 编解码 计算机视觉
【一秒梵高】基于OpenCV4实现图像九种风格迁移
【一秒梵高】基于OpenCV4实现图像九种风格迁移
14 0
|
11天前
|
计算机视觉
OpenCV中图像算术操作与逻辑操作
OpenCV中图像算术操作与逻辑操作
10 1
|
11天前
|
存储 计算机视觉
OpenCV3.1中读写图像与读写像素
OpenCV3.1中读写图像与读写像素
9 0
|
12天前
|
计算机视觉
OpenCV图像二值化
OpenCV图像二值化
|
12天前
|
存储 Cloud Native Linux
OpenCV图像翻转和旋转
OpenCV图像翻转和旋转
|
12天前
|
存储 Cloud Native Linux
OpenCV鼠标操作(画红色方框截取图像)
OpenCV鼠标操作(画红色方框截取图像)
|
12天前
|
计算机视觉
OpencV图像几何形状绘制
OpencV图像几何形状绘制