OpenCV For iOS 1: 连接OpenCV 3.0
2015-03-18 15:31
281 查看
本文的内容參考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:输入例如以下代码:
中间的过程先不考虑,关键点在使用了两个函数实现iOS下的UIImage和openCV下的cv::Mat格式的转换,从而实现了iOS与OpenCV的有效连接。
測试效果例如以下:
从上面能够看出,我们能够很很easy地在iOS下使用OpenCV。接下来就是理解并使用OpenCV的各个功能算法。
本系列文章採用的的开发环境为:
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的各个功能算法。
相关文章推荐
- OpenCV For iOS 1: 连接OpenCV 3.0
- OpenCV For iOS 1: 连接OpenCV 3.0
- ubuntu 系统解决mysql连接问题(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:
- 使用TOMCAT 连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- Limiting YouTube bandwidth for fortios 3.0
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- 如何解决sql server2005的“不允许远程连接”错误.(how to resolve the error: "SQL Server does not allow remote connections" for SQL Server2005)
- iOS: 2 Xib's with the same File's Owner for 1 IBOutlet object?
- iphone ios  开发者申请流程
- Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF)
- IOS  常见问题 之    EXC_BAD_ACESS
- Nokia发布新的J2ME开发工具——Nokia Developer's Suite 3.0 for J2ME™
- Mysql 访问,提示无法连接Can't get hostname for your address Error 1042
- iOS 指南系列: 内存管理
- ubuntu 系统解决mysql连接问题(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:
- PB10连接SQL Server的配置 
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- JSP连接MySQL时错误:Access denied for user 'root'@'localhost' (using password: YES)'解决方案
- ActionScript 3.0 Step By Step系列(三):学学流程控制,编编if-else & switch & while & for