zoukankan      html  css  js  c++  java
  • OpenCV For iOS 1: 连接OpenCV 3.0

    本文的内容參考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的有效连接。

    測试效果例如以下:


    从上面能够看出,我们能够很很easy地在iOS下使用OpenCV。接下来就是理解并使用OpenCV的各个功能算法。



  • 相关阅读:
    父亲对子女的话
    开通博客
    在linux下安装MySQLdb及基本操作
    java 词汇表速查手册
    java数据源的几种配置
    DBCP的参数配置
    Linux crontab定时执行任务
    很好看的Button CSS.
    C# 创建活动目录.txt
    解密存储过程
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4347323.html
Copyright © 2011-2022 走看看