在我的xcode项目中添加OpenCV 2框架后,我尝试搜索samlpes或教程以与swift集成.
有没有相同的好教程?
openCV 2.4.3/Xcode 4.5.2/mac osx 10.8.2
我想让openCV与iOS一起工作.我试图使用openCV.org中的预构建的2.4.3框架.但是我得到以下xcode项目构建错误,表明编译器不知道它正在处理c ++,例如
#include <list> !'list' file not found
namespace cv !unknown type name 'namespace'
Run Code Online (Sandbox Code Playgroud)
这似乎只涉及以下头文件:
"opencv2/nonfree/features2d.hpp"
"opencv2/nonfree/nonfree.hpp"
"opencv2/video/video.hpp"
如果我不在opencv.hpp(或其他任何地方)中包含这三个文件,我似乎能够编译并使用openCV ok.问题是,我确实需要非自由文件,因为我正在试验SURF - 最近已经转移到非自由.
这真是一个双重问题(对不起;-)
更新
我克隆了openCV git存储库,并从中构建了一个新的框架.这种方法以前没有用,但今天我意识到我没有使用当前版本的CMAKE.我一直在使用CMAKE 2.8.2,这将无法为ios构建opencv.当前版本的CMAKE 2.8.10构建它没有任何问题(这是一个服从文档的对象课程,确实需要CMAKE min.v2.8.8).
现在,当我在Xcode项目中添加opencv框架的当前版本时,我可以包含features2d和nonfree并顺利构建.唯一的问题仍然是一个标题:video/background_segm.hpp
,仍然产生:
#include <list> !'list' file not found
Run Code Online (Sandbox Code Playgroud)
如果我评论该行,我会在下一行收到错误:
namespace cv !unknown type name 'namespace'
Run Code Online (Sandbox Code Playgroud)
很明显,编译器不会将其识别为C++标头,即使它是后缀.hpp
.
在opencv2/video/video.hpp
如果我删除
#include "opencv2/video/background_segm.hpp"
Run Code Online (Sandbox Code Playgroud)
我也可以用video.hpp
它来构建(虽然我猜它在实践中是无法使用的).
不幸的是,我仍然无法让SURF工作.当我运行该项目时,它崩溃了这个错误:
OpenCV错误:未实现功能/功能(OpenCV是在没有SURF支持的情况下构建的)
这是在legacy/features2d.cpp
:
Ptr<Feature2D> surf = Algorithm::create<Feature2D>("Feature2D.SURF");
if( …
Run Code Online (Sandbox Code Playgroud) 我正在开发一款使用相机的iOS 6应用程序,但我一直无法弄清楚如何启用允许用户拍摄全景照片的选项.拍摄普通照片时,我已经完成了所有工作,但是想让用户选择在应用程序中使用iOS 6中的新全景功能.
我已经搜索过网络,但却无法找到任何信息(例如,Apple开发中心等).我无法确定这是否是可能的.我们可以使用它,如果是这样,怎么样?
我正在开发一个实现,我在大背景图像中有一个矩形图像.我试图以编程方式从大图像中检索矩形图像,并从该特定矩形图像中检索文本信息.我正在尝试使用Open-CV第三方框架,但无法从大背景图像中检索矩形图像.有人可以指导我,我怎么能做到这一点?
更新:
我发现链接使用OpenCV找出方形.我可以修改它以找到矩形形状吗?有人可以指导我吗?
更新的最新消息:
我终于得到了代码,下面是它.
- (cv::Mat)cvMatWithImage:(UIImage *)image
{
CGColorSpaceRef colorSpace = CGImageGetColorSpace(image.CGImage);
CGFloat cols = image.size.width;
CGFloat rows = image.size.height;
cv::Mat cvMat(rows, cols, CV_8UC4); // 8 bits per component, 4 channels
CGContextRef contextRef = CGBitmapContextCreate(cvMat.data, // Pointer to backing data
cols, // Width of bitmap
rows, // Height of bitmap
8, // Bits per component
cvMat.step[0], // Bytes per row
colorSpace, // Colorspace
kCGImageAlphaNoneSkipLast |
kCGBitmapByteOrderDefault); // Bitmap info flags
CGContextDrawImage(contextRef, CGRectMake(0, 0, cols, rows), image.CGImage);
CGContextRelease(contextRef); …
Run Code Online (Sandbox Code Playgroud) 我无法使用新版本的opencv 3.0.0框架构建项目(版本2没有此问题).Xcode 7不会将c ++源代码编译为c ++.
这是最简单的设置:
Objective-C++
源和标头并将它们添加到项目中.这是设置:
以下是编译器所说的内容:
opencv2.framework/Headers/core/base.hpp:49:4: error: base.hpp header must be compiled as C++
Run Code Online (Sandbox Code Playgroud)
这是为什么?我有.mm
文件,它应该编译为Objective-C++源代码.