ios opencv图片处理_基于OpenCV的iOS图像处理

本文介绍了如何在iOS上使用OpenCV进行图像处理,包括灰度处理、人脸识别,并提供了导入OpenCV到iOS项目的两种方法,以及Objective-C++中字符串和图片对象的转换。示例代码展示了从UIImage到cv::Mat的转换以及图像灰度处理和人脸检测的实现。
摘要由CSDN通过智能技术生成

OpenCV for iOS

关于图片处理

随着科技的发展,AI、机器学习、AR、VR等已经逐渐走进生活,模式识别、图像捕捉、图片拼接等已经成为其中的重要环节。因此,图像处理技术在未来会被移动端广泛使用。其中,有很多C++的库的应用普遍,常用的有:OpenCV、FreeImage、CImg和CxImage。

关于这几个库的特点和优缺点可以参考图像识别四大图像库比较。

关于OpenCV

简介

OpenCV (Open Source Computer Vision Library)是一个在BSD许可下发布的开源库,因此它是免费提供给学术和商业用途。有C++、C、Python和Java接口,支持Windows、Linux、MacOS、iOS和Android等系统。OpenCV是为计算效率而设计的,而且密切关注实时应用程序的发展和支持。该库用优化的C/C++编写,可以应用于多核处理。在启用OpenCL的基础上,它可以利用底层的异构计算平台的硬件加速。

——opencv.org

OpenCV的模块

从官方文档中我们可以看到其包含模块以及对iOS的支持情况。

core:简洁的核心模块,定义了基本的数据结构,包括稠密多维数组 Mat 和其他模块需要的基本函数。

imgproc:图像处理模块,包括线性和非线性图像滤波、几何图像转换 (缩放、仿射与透视变换、一般性基于表的重映射)、颜色空间转换、直方图等等。

video:视频分析模块,包括运动估计、背景消除、物体跟踪算法。

calib3d:包括基本的多视角几何算法、单体和立体相机的标定、对象姿态估计、双目立体匹配算法和元素的三维重建。

features2d:包含了显著特征检测算法、描述算子和算子匹配算法。

objdetect:物体检测和一些预定义的物体的检测 (如人脸、眼睛、杯子、人、汽车等)。

ml:多种机器学习算法,如 K 均值、支持向量机和神经网络。

highgui:一个简单易用的接口,提供视频捕捉、图像和视频编码等功能,还有简单的 UI 接口 (iOS 上可用的仅是其一个子集)。

gpu:OpenCV 中不同模块的 GPU 加速算法 (iOS 上不可用)。

ocl:使用 OpenCL 实现的通用算法 (iOS 上不可用)。

一些其它辅助模块,如 Python 绑定和用户贡献的算法。

我们可以利用OpenCV在iOS上做什么

基于OpenCV,iOS应用程序可以实现很多有趣的功能,也可以把很多复杂的工作简单化。一般可用于:

对图片进行灰度处理(官方示例)

人脸识别,即特征跟踪(官方示例)

训练图片特征库(可用于模式识别)

提取特定图像内容(根据需求还原有用图像信息)

……

导入OpenCV

opencv目前分为两个版本系列:opencv2.4.x和opencv3.x。

导入项目的两种方式:

1.从官网下载框架,引入工程。

前往OpenCV官网或OpenCV中文官网下载相关iOS版本framework文件,从项目引入,

导入OpenCV依赖库

libc++.tbd

AVFoundation.framework

CoreImage.framework

QuartzCore.framework

Accelerate.framework

CoreVideo.framework

CoreMedia.framework

AssetsLibrary.framework

引入相关头文件

#import

#import

#import

#import

注:使用OpenCV的类必须支持C++的编译环境,把.m文件改为.mm即可。

2.使用CocoaPods安装。

很简单。

pod 'OpenCV'

OpenCV的简单使用

处理图片可以创建一个UIImage的分类,OpenCV图像处理的相关代码都可以在这个类中实现。

代码可见笔者Github项目地址

图像灰度处理

1.在.h文件中声明两个类

@property (nonatomic, readonly) cv::Mat CVMat;

@property (non

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值