有時候我們處理完圖像后需要保存一下數(shù)據(jù)到文件上,以供下一步的處理。一個比較廣泛的需求場景就是:我們對一幅圖像進(jìn)行特征提取之后,需要把特征點(diǎn)信息保存到文件上,以供后面的機(jī)器學(xué)習(xí)分類操作。那么如果遇到這樣的場景,我們有什么好方法,搭建這類的小型數(shù)據(jù)庫文件?我第一時間想到的是把這些數(shù)據(jù)全寫到文件上,下次我們需要這些數(shù)據(jù)就把他們從文件里讀出來就好了。

其實更好的辦法是使用xml和yml,因為他們更具有可讀性,簡直就是為保存數(shù)據(jù)結(jié)構(gòu)而生的好方法!OpenCV提供了很好用的讀寫xml/yml的類,我們只要掌握其讀寫要領(lǐng),很容易就可以實現(xiàn)這個小型數(shù)據(jù)庫。

xml/yml的寫操作

如何將我們的數(shù)據(jù)寫入文件保存下來?

一個簡單數(shù)據(jù)寫入的例子

下面是我們最常用的一些數(shù)據(jù)類型的寫入xml的操作。

#include<opencv2\opencv.hpp>   #include<opencv2\highgui\highgui.hpp>using namespace std;using namespace cv;typedef struct{    int x;    int y;    string s;
}test_t;int main(int argc, char** argv){    FileStorage fs("test.xml", FileStorage::WRITE); //填入寫操作

    //測試數(shù)據(jù)
    int a1 = 2;    char a2 = -1;    string str = "hello sysu!";    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };    test_t t&n
        
		

網(wǎng)友評論