0
有什麼方法可以將CvMat *轉換成CvMat?我被困在代碼中,我必須使用cvCloneMat()克隆CvMat。這給了我CvMat *,因爲我需要它作爲CvMat。將CvMat 8轉換成CvMat
我已經嘗試瞭解引用的東西,但它不工作。我正在寫一個抖動/最大外部,它有一個圖像矩陣作爲輸入,矩陣作爲輸出。這裏是一段代碼
//Convert input and output matrices to OpenCV matrices
cvJitter2CvMat(in_matrix, &source);
cvJitter2CvMat(out_matrix, &edges);
//Calculate threshold values
thresh1 = x->threshold - x->range;
thresh2 = x->threshold + x->range;
CLIP(thresh1,0,255);
CLIP(thresh2,0,255);
//calculate
//cvCanny(&source, &edges, thresh1, thresh2, 3);
tempo = cvCloneMat(&source);
edges = (*tempo);
} else {
return JIT_ERR_INVALID_PTR;
}
出: jit_object_method(out_matrix,gensym( 「鎖」),out_savelock); jit_object_method(in_matrix,gensym(「lock」),in_savelock); return err; }
問題是,當我使用「cvCanny()」而不是cvCloneMat()它的作品。輸出顯示爲視頻流的邊緣。但如果我使用cvCloneMat(),它會顯示一個空白圖像。
親切看看編輯的問題,因爲它不工作。 – Waqar
邊緣被聲明爲CvMat,而不是CvMat *。將節奏標題複製到邊緣(但不是圖像數據)。這是錯誤的。因爲在溫度超出範圍之後,沒有人知道發生了什麼。我已經看到更多的CvMat inits並且沒有發佈。仔細閱讀OpenCV文檔並尋找關於指針和內存使用情況的好教程。接受我的忠告,開始學習C/C++,然後去OpenCV。沒有基礎知識,你就不能繼續。 – Sam
當你想回到圖像處理時,我的建議是使用C++接口。用Mat,而不是CvMat。 – Sam