今天將手邊一個 OpenCV 測試程式從 Python 版改成 C++ 版,由於是第一次嘗試使用 C++ OpenCV,記錄一下撞牆的心得XD
01. Mat 運算如果值不如預期,看是否要將 data type 從 float 改成 double。
02. cv::SVD::compute(A, w, u, vt, cv::SVD::FULL_UV),如果答案與 Python 版本不一樣,試著指定 flag。
03. Mat.reshape(cn, newdimension) 的意思如下:
cn 表示 channel,0 就表示不變。
newdimension 表示新的 row。
(1, 9) -> (3, 3)
Mat.reshape(0, 3) or Mat.reshape(1, 3)
04. Mat 計算很容易觸發 exception,故程式會不正常結束,可以考慮加上 try catch 捕捉錯誤。
try {
} catch ( cv::Exception &e) {
const char *msg = e.what( );
std::cout << "exception caught: " << msg << std::endl;
}
沒有留言:
張貼留言