我的問題是類同的一個a cv::Mat of std::vector ... how do I?如何定義和使用用戶類型的OpenCV的墊
我需要一個矩陣,每個元素都是一個std :: vector的。這個矩陣是在一系列相同大小的圖像(如視頻)上完成的計算輸出。許多計算都是典型的cv函數(轉換爲灰度,盒式濾波器等),然後將像素的值添加到矢量中。我不事先知道有多少圖像將有在任何情況下,我不能使用的圖像可能會超過512
一個建議的答案有使用指針的墊材的渠道理念。所以如果我嘗試以下方法,它會起作用嗎?
這將在Windows機器上,我明白,指針大小INT-PTR 64位寬。然後我可以使用CV_64,但只定義了CV_64F。由於我不會用這個矩陣做任何計算,我可以使用它來存儲指針。我在考慮在讀取第一張圖片之前,我會得到大小,創建這個矩陣,使用「new std :: vector」爲每個像素創建矢量並將該指針存儲在元素中。在我的計算循環中,我使用相同的訪問偏移來讀取原始圖像並將輸出存儲在向量中。當我完成向量時,我需要在釋放cv :: mat之前刪除這些向量。
我很欣賞那些對opencv比我更瞭解的人的任何意見 - 這實在是來自opencv的第一個應用程序。
鑑於這是您的第一個OpenCV應用程序,我可能會建議將您的用戶類型放入矩陣可能不是您想要執行的操作嗎?難道你不能創建一個存儲普通值矩陣的用戶類型,然後存儲這些矩陣的矢量,其中每個矢量元素代表一幀的結果? – paddy
正如我引用的例子,我需要快速訪問第三維中的所有數據。一個矩陣向量不會給我這個。 –