OpenCV For iOS 1: 串連OpenCV 3.0,iosopencv
本文的內容參考Instant OpenCV for iOS結合最新的開發平台完成。
本系列文章採用的的開發環境為:
1)Xcode 6
2)OpenCV for iOS 3.0.0 alpha
接下來Step by Step 說明如何在最新的平台下使用OpenCV,以將一個彩色圖片轉換為邊緣圖為例
Step 1:建立一個新的項目
Step 2:在Building phase裡面添加opencv2.framework
Step 3:由於openCV採用C++,因此,要在項目中運行c++代碼,需要將檔案名稱尾碼由.m改成.mm,如所示
Step 4:在ViewController.mm中import OpenCV的檔案
#import <opencv2/opencv.hpp>
#import <opencv2/imgproc/types_c.h>
#import <opencv2/imgcodecs/ios.h>
由於opencv.hpp並沒有包含所以opencv2的檔案,所以有一些需要分別import。
Step 5:輸入如下代碼:
@interface ViewController (){ cv::Mat cvImage;}@property (weak, nonatomic) IBOutlet UIImageView *imageView;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; CGRect rect = [UIScreen mainScreen].bounds; self.imageView.frame = rect; UIImage *image = [UIImage imageNamed:@"road.JPG"]; // Convert UIImage * to cv::Mat UIImageToMat(image, cvImage); if (!cvImage.empty()) { cv::Mat gray; // Convert the image to grayscale; cv::cvtColor(cvImage, gray, CV_RGBA2GRAY); // Apply Gaussian filter to remove small edges cv::GaussianBlur(gray, gray, cv::Size(5,5), 1.2,1.2); // Calculate edges with Canny cv::Mat edges; cv::Canny(gray, edges, 0, 60); // Fill image with white color cvImage.setTo(cv::Scalar::all(255)); // Change color on edges cvImage.setTo(cv::Scalar(0,128,255,255),edges); // Convert cv::Mat to UIImage* and show the resulting image self.imageView.image = MatToUIImage(cvImage); } }
中間的過程先不考慮,關鍵點在使用了兩個函數實現iOS下的UIImage和openCV下的cv::Mat格式的轉換,從而實現了iOS與OpenCV的有效串連。
測試效果如下:
從上面可以看出,我們可以非常非常簡單地在iOS下使用OpenCV。接下來就是理解並使用OpenCV的各個功能演算法。
剛編譯的opencv243,但是在/include/opencv2下只有一個opencvhpp檔案,沒有其他的標頭檔?
包含目錄:
E:\opencv\build\include
E:\opencv\build\include\opencv
E:\opencv\build\include\opencv2
庫目錄:
E:\opencv\build\x86\vc10\lib
依賴附加項Debug:
opencv_core243d.lib
opencv_highgui243d.lib
opencv_video243d.lib
opencv_ml243d.lib
opencv_legacy243d.lib
opencv_imgproc243d.lib
opencv_flann243d.lib
opencv_features2d243d.lib
opencv_calib3d243d.lib
opencv_objdetect243d.lib
opencv_contrib243d.lib
Release:
opencv_core243.lib
opencv_highgui243.lib
opencv_video243.lib
opencv_ml243.lib
opencv_legacy243.lib
opencv_imgproc243.lib
opencv_flann243.lib
opencv_features2d243.lib
opencv_calib3d243.lib
opencv_objdetect243.lib
opencv_contrib243.lib
// 修改路徑即可
// 記得修改系統內容變數
vs2010下配置OpenCV
Visual Studio 2010 +Opencv2.3下的配置關鍵步驟
Opencv下載OpenCV for Windows,superpack 版本的
地址:www.opencv.org.cn/...ck.exe
以下內容都是build檔案夾裡的內容
一、設定環境變數:
我的電腦--->右鍵--->屬性--->進階--->環境變數--->在使用者變數裡,建立path和OPENCV兩個項
步驟1:在path中添加I:\Program Files\OpenCV2.3\build\x86\vc10\bin,就是添加dll檔案
步驟2:添加OPENCV的環境變數I:\Program Files\OpenCV2.3\build
二、開啟一個Opencv的工程,點菜單目錄的“視圖”--->屬性管理員--->雙擊項目名稱
步驟3:在配置屬性--->VC++目錄--->包含目錄檔案中添加
I:\Program Files\OpenCV2.3\build\include
I:\Program Files\OpenCV2.3\build\include\opencv
I:\Program Files\OpenCV2.3\build\include\opencv2
步驟4::在配置屬性--->VC++目錄--->庫目錄中添加
I:\Program Files\OpenCV2.3\build\x86\vc10\lib
步驟5 添加lib庫檔案, 在配置debug裡--->項目屬性--->連結器--->輸入--->附加依賴庫 裡加上
opencv_core230d.lib
opencv_highgui230d.lib
opencv_video230d.lib
opencv_ml230d.lib
opencv_legacy230d.lib
opencv_imgproc230d.lib
步驟6:在配置release裡--->項目屬性--->連結器--->輸入--->附加依賴庫 裡加上
opencv_core230.lib
opencv_highgui230.lib
opencv_video230.lib
opencv_ml230.lib
opencv_legacy230.lib
opencv_imgproc230.lib