2013-08-27 21 views
6

我試圖創建一個具有與另一個大小和類型相同的Mat。新Mat的所有元素應該是零,所以我嘗試了Mat::zeros(size, type)函數,定義爲:無法通過大小和類型參數調用OpenCV的Mat ::零

static MatExpr zeros(Size size, int type); 

這是我的代碼。假設我已經有一個Mat g(創建通過imread):

Mat h = Mat::zeros(g.size, g.type()); 

這會給我一個編譯器錯誤,抱怨說:

沒有匹配的功能調用「零」

什麼我做錯了嗎?

+0

什麼是'g.size'的類型? – juanchopanza

回答

11

你已經偶然發現了cv::Mat的怪癖之一。 size字段不會返回cv::Size,而是返回Mat::MSize結構。這MSize可以通過調用operator()轉換爲cv::Size

都需要這樣的呼籲:

Mat h = Mat::zeros(g.size(), g.type()); 
+0

謝謝。我應該知道的任何其他怪癖? ;-) – cfischer