OpenCV在iOS图像处理中的集成方法

iOS 上的图像,不想写底层代码又想玩出花样?那你一定得试试OpenCV。它不是新鲜玩意儿,但确实好用,适合搞点图像、边缘检测这类活儿。

在 iOS 项目里集成 OpenCV 其实没你想的那么麻烦。用CocoaPods的话,Podfile 里加一句pod 'OpenCV'pod install就能搞定。如果你更偏爱自己掌控过程,也可以从官网下载源码手动拖进项目里。

就是配置项目了,Build Settings 里动点手脚,在Other Linker Flags里加一串-lopencv_core-lopencv_imgproc之类的链接参数,OpenCV 的那些模块才能用上。不然引入了库,结果一运行就崩,那就尴尬了。

代码这块也没啥绕的,用Objective-C的你可以直接#importSwift用户也不用担心,通过bridging-header一桥连通,照样能用 OpenCV。

举个栗子,加载一张图,转成灰度,显示出来,这流程用 OpenCV 几行代码就能搞定。看下面:

@implementation ViewController
- (void)viewDidLoad {
  self.inputImage = [UIImage imageNamed:@"input.jpg"];
  cv::Mat inputMat = [self imageToMat:self.inputImage];
  cv::Mat grayMat;
  cvtColor(inputMat, grayMat, COLOR_BGR2GRAY);
  self.outputImage = [self matToImage:grayMat];
}

啦,想让它跑得更顺,你还得注意主线程更新 UI,OpenCV 图像那块一般放后台。别一边滤镜一边卡 UI,那体验就全毁了。

OpenCV在 iOS 上不算冷门,配合 UIKit,能做出多有意思的图像玩法。如果你想试试 AR、识别物体、甚至自己搞个美颜 App,它都能派上用场。

如果你还想继续深入,可以看看这个图像的文章 OpenCV 图像实践,讲得蛮细。

zip 文件大小:30.26MB