iOS平台配置OpenCV

转自:https://www.jianshu.com/p/37f92dff1105

1.下载opencv for iOS,下载地址:http://opencv.org/,下载后直接解压即可,解压后为opencv2.framework框架。

[图片上传中...(屏幕快照 2018-01-22 下午6.29.30.png-cf69f1-1516617000825-0)]

屏幕快照 2018-01-22 下午6.29.30.png

2.新建一个Xcode的工程,命名ImportOpenCV选择“Add files ImportOpenCV” ->opencv2.framework,导入opencv2.framework库。

44350F07-0F62-4BA9-972F-26F916F04506.png

3.ViewController.m修改为ViewController.mm,导入头文件

#import <opencv2/opencv.hpp>
#import <opencv2/imgproc/types_c.h>
#import <opencv2/imgcodecs/ios.h>

这里需要注意的是上述opencv头文件的引用必须放置在oc头文件引用之前如下:

BE093BD9-C1D5-4E63-A151-9F0D2F440295.png

否则会报如下错误:

F1FC35F3-7691-4CA7-A13B-7BD09466BF99.png

根据苹果提示将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);

    }

}

猜你喜欢

转载自blog.csdn.net/iotjin/article/details/83579250