iOS平臺配置OpenCV
阿新 • • 發佈:2018-11-30
轉自: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); } }