2014-02-16 22 views
0
vector<Mat> images; 
vector<int> labels; 

我假定Mat是用于图像的结构和int是一个数据类型在下面的两行之间的差异。但是什么是vector? 它是一个二维数组吗?请提前清除我的疑问。是什么在OpenCV进行图像

回答

0

vector<int> labels表示标签的向量。所以,只要你想在这个向量中插入一个元素,你可以通过label.push_back(elementToBeInserted);

,只要你想访问存在的元素在这个载体,可以做到以下几点:

for(int i=0; i<labels.size(); i++) 
{ 
    int element = labels[i]; 
    cout<<Element: <<element; 

} 

而且类似的描述适用于vector<Mat> images;。还有一件事是Mat代表Matrix和图像存储为矩阵。

PS:vector< vector<int> >labels;将代表一个二维矢量

+0

是矢量类似于数组,如果是,那么什么为DIFF – user3309272

+0

没有进入编程细节,我会说,它们是相似的,但主要的区别是,在'vectors'你不需要指定情况尺寸。无论何时你想插入一个元素,都可以通过'label.push_back()'来完成,并且它存储在下一个可用的位置。如果对你有用,请注意/接受我的回答。 – skm

1

在C++中,std::vector是一个封装动态大小的数组一个序列容器。这是一个1维数组,其元素连续存储。

  • 对于vector<Mat> images;images被宣布为一个1 - 尺寸数组,其元素是cv::Mat秒。

    要定义这样的元素的2维数组,您可以使用vector<vector<Mat>> images_2d;

  • 对于vector<int> labels;,labels被声明为1维数组,其元素为int s。

    要定义这样的元素的维数组,可以使用vector<vector<int>> labels_2d;