所以,我正在寫一些OpenCV C++代碼,我無法將我的代碼從OpenCV 2.2移植到2.3.1。目前的主要問題是Mat::copyTo
函數。在文檔或發行說明中,他們提到雖然此函數的新版本採用OutputArray,但舊代碼仍應可用(即,Mat::copyTo(Mat &m)
)。事情是它不起作用。opencv 2.3 copyTo函數不工作,因爲它在2.2
這裏是我的代碼
void copyMatRows(Mat &src,Mat &dest,int start_pos)
{
for(int i=0; i < src.rows;i++)
{
int dest_y = start_pos;
if(start_pos < 1)
{
dest_y = dest_y+i;
}
src.row(i).copyTo(dest.row(dest_y));
}
}
所以在上面的代碼行
src.row(i).copyTo(dest.row(dest_y));
失敗,出現錯誤
呼叫到CV不匹配功能::墊:: copyTo(cv :: Mat)候選 爲:void cv :: Mat :: copyTo(const cv :: _ OutputArray &)const
任何幫助將不勝感激?任何我可以解決這個問題的方法?
我想要做的是獲得N個矩陣並將它們全部組合在一個大矩陣中。
在OpenCV中有更高效的方法來複制矩陣。看看使用投資回報率。 – misha
那麼這將是有道理的,但如何?函數adjustROI和locateROI與cvSetImageROI的工作方式稍有不同....我相信ROI涉及在進行操作之前增長圖像矩陣 – cptdanko
它們的工作方式稍有不同,但最終完成的結果完全相同。相當於cvSetImageROI是接受Rect的Mat構造函數。看看這裏:http://opencv.willowgarage.com/documentation/cpp/basic_structures.html – misha