【问题标题】:Why the use of cvLoadImage of OpenCV always return NULL on IOS?为什么使用 OpenCV 的 cvLoadImage 在 IOS 上总是返回 NULL?
【发布时间】:2012-09-14 08:42:02
【问题描述】:

我写了一些代码在iPad上运行,我使用cvLoadImage()从Bundle Resources读取图像,但它总是返回NULL,不知道为什么?

【问题讨论】:

  • 文件的路径可能是错误的。
  • 我将图像添加到捆绑资源中,我认为它不需要路径,我只写图像的名称。这就像 "cvLoadImage("lena.jpg");"
  • 您不应该对当前工作目录做出假设。首先获取包的路径,并在文件名前加上路径。

标签: iphone ios opencv


【解决方案1】:

您不能将应用程序包中的图像直接加载到 OpenCV 中……获得正确的 cv::Mat 涉及两个步骤:

1.) 使用 UIImage 加载图像
2.) 将 UIImage 转换为 cv::Mat

看起来像这样:

cv::Mat img = [UIImageCVMatConverter cvMatFromUIImage:[UIImage imageNamed:@"my_image.png"]];

从此线程获取 UIImageCVmatConverter 类:OpenCV install in xcode

希望有帮助!

【讨论】:

  • 其实我是用另一种方式加载图片的,不过你的回答也是对的
  • 拜托,你能解释一下为什么用opencv函数不能直接加载bundle中的图像吗?
【解决方案2】:

直接使用

[UIImage imageWithNamed:@"photo.png"];

如果图片在Bundle中,可以直接使用。

【讨论】:

  • 但是我需要用OpenCV的方法处理这个图像
猜你喜欢
  • 2014-09-12
  • 2019-09-18
  • 2014-09-02
  • 2015-02-27
  • 2021-01-10
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多