【问题标题】:what exactly is the concept of vectors in opencv?opencv中向量的概念到底是什么?
【发布时间】:2014-08-12 10:03:57
【问题描述】:

我正在浏览这个程序,它基本上是关于计算图像中的凸度缺陷。我似乎无法消除对以下内容的困惑-

*vector<vector<Point>> hull( contours.size() );
vector<vector<int> > hullsI(contours.size());
vector<vector<Vec4i>> convdefect(contours.size());*

上述程序的链接如下:-Calculating convexityDefects using OpenCV 2.4 in c++

直觉上我知道向量在物理术语中的含义,但有人可以用简单的概念解释我在opencv中向量的概念是什么意思(特别是点,整数和vec4i)以及上述术语之间的区别是什么?任何链接或建议都会非常有帮助。谢谢

【问题讨论】:

标签: c++ opencv


【解决方案1】:

向量是std::vector。您提到的其他数据结构在the documentation of OpenCV's basic structures 中很容易找到。

但是我注意到code you linked to 包含cv::vector。 如果你查看OpenCV 2.4.9's core.hpp,你会发现这个

#include <vector>
...
namespace cv {
    ...
    using std::vector;
    ...
}

它使vector 出现在cv 命名空间中;也就是说,cv::vector 实际上是std::vector。我认为 core.hpp 的作者会这样做以避免代码中的内部混乱 - 因为 user code 创建 cv::vector 在我看来只会造成混乱,特别是当 cv::vector 与 @ 一起使用时987654334@ 和 vector 好像它们都可能有所不同——看看这段代码的摘录:

cv::vector<cv::Vec4i> hierarchy;    
std::vector<std::vector<cv::Point> > contours;
...
vector<cv::vector<cv::Point> >hull( contours.size() );

事实上,从我看到的头文件重组方式来看,我认为cv::vector 不会出现在OpenCV 的下一个主要版本(3.0.0)中。

【讨论】:

  • 只是确认 cv::vector 从 3.1 开始不再存在。
猜你喜欢
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 2010-11-24
  • 2017-03-31
  • 1970-01-01
相关资源
最近更新 更多