Yani ben var bir üç küresel Mat (Benimle ayı), ben çift ile doldurmak isteyen, ben de varOpenCV C++ Mat ÇILGINLIĞI
böylece baskı yöntemi ile nesne Main.hpp
Main class {
...
Mat FIXED;
Mat one;
Mat two;
...
}
ve benim main.cpp i ince herhangi matris girişi her şeyi saklar için
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");
}
}
Yani var.
printMat(one); <--this works
BU İNCE İŞLERİ, ama sonra SONRA
two = FIXED.clone();
BU BOZMA yap, ben NEDEN YARDIM
printMat(one); <--this doesnt work
i .clone dışarı yorum yaparsanız NO IDEA(), aynı boyutta boş bir matris yapar ve FIXED'e kaydetmezse çalışır.
Tüm matrisler 'CV_64FC1' türündendir? Aksi takdirde bu muhtemelen kırılacaktır. Main’ın bir örneğinden 'printMat’ı çağırmamanız gerekir mi? BTW, baskı matrisleri için 'mat << endl; 'cout'unu kullanabilirsiniz. – Miki
Varsayılan olarak 1 Kanal için emin değilsiniz. Her neyse benim hatam oldu ve cevap yazdım. Çaylak hatası referenc vs değer hatası, ama kolayca kafa karıştırıcı sanırım. – Vroosh
Matrisini neden yazdırırken neden dönüştürdüğünüzü anlamıyorum (kodunuz bir satırdaki her sütunun değerlerini yazdırır, sonra satırsonu satırına geçer ve bir sonraki satıra gider) veya neden "cout" kullanmıyorsunuz, ancak aynı görevi daha okunaklı (IMHO) bir şeyle tamamlayın: 'için (int j = 0, j'da (i, j)); printf ("\ n"); } ' –