1. 程式人生 > >iOS平臺配置OpenCV

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);

    }

}