天天看點

《OpenCV圖像處理》——2.6 資料持久化

本節書摘來自華章計算機《opencv圖像處理》一書中的第2章,第2.6節,作者:[西]葛羅瑞亞·布埃諾·加西亞(gloria bueno garcía)著,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視

在opencv中,除了包括讀取、寫入圖像和視訊的特定函數之外,還有一種更加通用的方式用來儲存/加載資料。此方法稱之為資料持久化(data persistence):程式中對象和變量的值可以被記錄(序列化)到磁盤上。這對于儲存結果和加載配置資料是非常有用的。其主類是aptly,命名為filestorage,表示磁盤上的一個檔案。實際上,資料被存儲為xml格式或yaml格式。

這些是寫入資料時涉及的步驟:

(1)調用構造函數filestorage,使用filestorage::write值傳遞一個檔案名稱和一個标志,資料格式則是由檔案擴充名(即.xml、.yml或.yaml)定義的;

(2)使用運算符<<将資料寫入檔案,資料通常被寫為字元串值對;

(3)使用release方法關閉檔案。

讀取資料時需要如下這些步驟:

(1)調用構造函數filestorage,使用filestorage::read值傳遞一個檔案名和一個标志;

(2)使用運算符[]或>>從檔案中讀取資料;

下面的示例使用資料持久化儲存和加載滑動條的值。

《OpenCV圖像處理》——2.6 資料持久化
《OpenCV圖像處理》——2.6 資料持久化

當opencv使用qt支援編譯時,使用函數savewindowparameters()可以儲存視窗屬性,包括滑動條的值。

當使用滑動條來控制一個整數值時,隻是被加入到原始圖像,使其變得更亮。當程式啟動時,這個值被讀入(初次時,該值為0),并在程式正常退出時進行儲存。注意,上面的示例中顯示了有兩種等價的方法讀取tb1_value變量的值。檔案conf?ig.xml的内容是:

《OpenCV圖像處理》——2.6 資料持久化

繼續閱讀