OpenCV在iOS图像处理中的集成方法
iOS 上的图像,不想写底层代码又想玩出花样?那你一定得试试OpenCV。它不是新鲜玩意儿,但确实好用,适合搞点图像、边缘检测这类活儿。
在 iOS 项目里集成 OpenCV 其实没你想的那么麻烦。用CocoaPods的话,Podfile 里加一句pod 'OpenCV'
,pod install
就能搞定。如果你更偏爱自己掌控过程,也可以从官网下载源码手动拖进项目里。
就是配置项目了,Build Settings
里动点手脚,在Other Linker Flags
里加一串-lopencv_core
、-lopencv_imgproc
之类的链接参数,OpenCV 的那些模块才能用上。不然引入了库,结果一运行就崩,那就尴尬了。
代码这块也没啥绕的,用Objective-C的你可以直接#import
,Swift用户也不用担心,通过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 图像实践,讲得蛮细。
30.26MB
文件大小:
评论区