第一步:下载OpenCV开发包
第二步:安装Homebrew(用于安装CMake)
安装文档地址:http://brew.sh/index_zh-cn.html
快速安装直接执行以下命令安装:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
第三步:安装CMake(用于安装OpenCV)
CMake是一个跨平台编译工具
第一种安装方式:下载安装(推荐使用下载安装)
下载官方:https://cmake.org/download/
第二种安装方式:执行命令安装(但是需求提前安装Homebrew)
brew install cmake
第四步:安装OpenCV
1. 进入下载OpenCV解压之后的文件夹
2. 执行命令(依次执行以下命令进行安装)
命令一:mkdir build
命令二:cd build
命令三:cmake -G "Unix Makefiles" ..
命令四:make
命令五:sudo make install
3. 执行完命令,OpenCV安装完成
到此OpenCV环境就搭建好了,我们写一个小项目测试一下
- 新建iOS项目
- 在项目build setting->search path进行配置
3.在官网下载iOS framework并导入项目中
- 编写工具类
/**
OpenCVImageUtils.h
*/
#import <UIKit/UIKit.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
//支持iOS平台图片转换
#include <opencv2/imgcodecs/ios.h>
using namespace cv;
@interface OpenCVImageUtils : NSObject
+(UIImage*)opencvImage:(UIImage*)srcImage dst:(UIImage*)dstImage;
@end
/**
OpenCVImageUtils.mm
*/
#import "OpenCVImageUtils.h"
@implementation OpenCVImageUtils
+(UIImage*)opencvImage:(UIImage*)srcImage dst:(UIImage*)dstImage{
//第一步:准备两种图片
Mat mat_image_src;
UIImageToMat(srcImage, mat_image_src);
Mat mat_image_dst;
UIImageToMat(dstImage, mat_image_dst);
//第二步:创建叠加区域->开辟了一块内存空间
Mat mat_roi = mat_image_src(Rect2i(0, 0, mat_image_dst.cols, mat_image_dst.rows));
//第三步:图片叠加->加水印->合并之后覆盖原来的图片
//参数一:第一个图片数组
//参数二:第一个图片数组->权重
//参数三:第二个图片数组
//参数四:第二个图片数组->权重
//参数五:权重和基础之上标量值
//参数六:输出数组->输出目标
//dst = src1*alpha + src2*beta + gamma;
//伪代码:mat_roi * 0 + mat_image_dst * 1 + 0
addWeighted(mat_roi, 0, mat_image_dst, 1, 0, mat_roi);
//第四步:将Mat图片->iOS图片
return MatToUIImage(mat_image_src);
}
@end
-
准备两张图片(蜡笔小新作为底图、大熊作为覆盖图)
/**
添加水印
@param sender <#sender description#>
*/
- (IBAction)cover:(id)sender {
UIImage *srcImg = [UIImage imageNamed:@"src.jpg"];
UIImage *dstImg = [UIImage imageNamed:@"dst.jpg"];
_imageView.image = [OpenCVImageUtils opencvImage:srcImg dst:dstImg];
}
-
执行后效果如下