OpenCV 4 IOS

最近有机会接触到Opencv,菜鸟一个,将这开源库使用在iOS上碰到了不少问题,也找到了一些资料,

所以向再这边做下总结,好让自己以后碰到的时候可以快速解决。

要将Opencv使用在iOS上需要到http://opencv.org网站(网站右边有个Opencv For iOS ,点击既可下载)上下载opencv2.framework。其实有了这库的我页不知道怎么用的。所以google了下有没有这方面的Demo的。一下是我找到的它官网发布的iOS的Demo。

Demo:http://code.opencv.org/projects/gsoc2012/repository/entry/ios/trunk
CVPR2012演讲稿:http://code.opencv.org/projects/gsoc2012/repository/entry/ios/trunk/doc/CVPR2012_OpenCV4IOS_Tutorial.pdf

开始点Demo想下载的当不知道怎么下载。后来看到一个帖子http://blog.csdn.net/harveofhust/article/details/6099295

我也就用终端试了下。

在终端中执行

svn co http://code.opencv.org/svn/gsoc2012/ios/trunk/

没想居然把这东西给down下来了。这部分的我也还不是很清楚,就知道这样成了。有知道的大牛可以讲解下的。

down下的源码的我用xcode打开的发现opencv2.framework的都是红色,反正我也下载了就把原先的删除了加了我下的。

其中一个打开运行的成功了。我还以为成了。后来打开几个的做了相同的修改的,但是却是出现了报错。

Undefined symbols for architecture i386: "cv::Exception::Exception(int, std::string const&, std::string const&, std::string const&, int)", referenced from: MatToUIImage(cv::Mat const&) in ViewController.o "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from: std::__1::enable_if<__is_forward_iterator<unsigned long*>::value, void>::type std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >::assign<unsigned long*>(unsigned long*, unsigned long*) in opencv2(matrix.o) std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >::vector(unsigned long) in opencv2(matrix.o) std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >::__append(unsigned long) in opencv2(matrix.o) std::__1::vector<cv::Vec<float, 2>, std::__1::allocator<cv::Vec<float, 2> > >::vector(unsigned long) in opencv2(matrix.o) std::__1::vector<int, std::__1::allocator<int> >::vector(unsigned long) in opencv2(matrix.o) std::__1::vector<cv::Vec<int, 128>, std::__1::allocator<cv::Vec<int, 128> > >::__append(unsigned long) in opencv2(matrix.o) std::__1::vector<cv::Vec<int, 64>, std::__1::allocator<cv::Vec<int, 64> > >::__append(unsigned long) in opencv2(matrix.o) ...

google了错误居然没几条结果,找了都没合适的。在其中文论坛也找了下。也没找到。

在这分享下它的中文网站:http://www.opencv.org.cn/index.php/Template:Doc

后来在官网上盲目的找了下。试了几个的居然可以。

http://answers.opencv.org/question/4655/link-error-for-only-cascadeclassifier-under-243/

It turns out that even though I switched from libstdc++ to libc++, I was still compiling against libstdc++, so this lead to some of the method signatures not matching at link time. To fix this:

  • In the Build Settings tab for your project, scroll down to "Apple LLVM Compiler 4.1 - Language"
  • Set the setting "C++ Language Dialect" to "C++11 [-std=c++11]"
  • Set the setting "C++ Standard Library" to "libc++ (LLVM standard C++ library with C++11 support)"

(You'll also need to switch the C++ runtime library from libstdc++ to libc++ in the "Link Binary With Libraries" section of the "Build Phases" tab.)

其中主要的就是可能库中是有用c++来编写的,所以需要将bulid settings中的几项需要设置下。

到此忙了半天终于能把其Demo正常运行起来。明天开始研究Demo。搞起。




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值