1.下载opencv for iOS,下载地址:http://opencv.org/,下载后直接解压即可,解压后为opencv2.framework框架。
2.新建一个Xcode的工程,命名ImportOpenCV选择“Add files ImportOpenCV” ->opencv2.framework,导入opencv2.framework库。
3.ViewController.m修改为ViewController.mm,导入头文件
#import <opencv2/opencv.hpp>
#import <opencv2/imgproc/types_c.h>
#import <opencv2/imgcodecs/ios.h>
这里需要注意的是上述opencv头文件的引用必须放置在oc头文件引用之前如下:
否则会报如下错误:
根据苹果提示将opencv头文件引用置于oc头文件引用之前
添加如下代码:
@interface ViewController ()
{
cv::Mat cvImage;
}
@property (weak, nonatomic) IBOutlet UIImageView *imgView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImage * image = [UIImage imageNamed:@"bg"];
UIImageToMat(image, cvImage);
if (!cvImage.empty()) {
cv::Mat gray;
//将图像转换为灰度显示
cv::cvtColor(cvImage, gray, CV_RGB2GRAY);
//应用高斯滤波器去除小的边缘
cv::GaussianBlur(gray, gray, cv::Size(5,5), 1.2,1.2);
//计算与画布边缘
cv::Mat edges;
cv::Canny(gray, edges, 0, 50);
//使用白色填充
cvImage.setTo(cv::Scalar::all(225));
//修改边缘颜色
cvImage.setTo(cv::Scalar(0,128,255,255),edges);
//将Mat转换为xcode的UIImageView显示
self.imgView.image = MatToUIImage(cvImage);
}
}
编译运行效果图如下: