OpenCV For iOS 1: 串連OpenCV 3.0

來源:互聯網
上載者:User

標籤:ios   opencv   

本文的內容參考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的各個功能演算法。



OpenCV For iOS 1: 串連OpenCV 3.0

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.