2014-02-16 49 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;