所以我有Main.hpp與全球三大墊(承擔與我),我想,以填補雙打,我也有一個打印方法OpenCV的C++墊MADNESS
所以對象
Main class {
...
Mat FIXED;
Mat one;
Mat two;
...
}
,並在我的Main.cpp的我有
void Main::printMat(Mat mat) {
int rows = mat.rows;
int cols = mat.cols;
for (int j = 0, j < cols; j++) {
for (int i = 0, i < rows; i++) {
printf("%lf ", mat.at<double>(i,j));
}
printf("\n");
}
}
因此,對於任何矩陣輸入它的一切門店罰款。
printMat(one); <--this works
這正常,但後來我做
two = FIXED.clone();
那麼這休息,我不知道爲什麼HELP
printMat(one); <--this doesnt work
如果我註釋掉.clone ()線它的工作原理,如果我做一個相同大小的空白矩陣並保存到FIXED它不起作用。
所有的矩陣都是'CV_64FC1'類型的?如果沒有,這可能會中斷。你不應該從類Main的一個實例調用'printMat'嗎?順便說一句,你可以簡單地使用'cout << mat << endl;'打印矩陣 – Miki
認爲它默認爲1通道不確定。無論如何,這是我的錯誤,我寫了一個答案。猜猜菜鳥錯誤引用vs值錯誤,但容易混淆。 – Vroosh
我不明白你爲什麼在打印時轉置矩陣(你的代碼在一行中打印每列的值,然後換行並轉到下一行),也不知道爲什麼你不使用'cout',但你可以(int j = 0,j(i,j)); } printf(「\ n」); } –