最近在寫影象拼接的演算法,由於需要對變換矩陣homo進行一定的處理,需要對float64型mat元素進行改變,查了許多資料有很多好用的,比如說這個:
但是我一使用就報錯
homo = cv::findhomography(imagepoints2, imagepoints1, cv_ransac);
cv::mat_::iterator it = homo.begin();
cv::mat_::iterator itend = homo.end();
cout << homo
homo.at(1, 0) = 0;
homo.at(1, 1) = 1;
homo.at(2, 0) = 0;
homo.at(2, 1) = 0;
如上所示,嘗試了好幾種方法都報錯
debug的時候可以看到homo是float64型別的
後來,才知道,原來float64型別就是double型別而不是float型別。
將原來的程式改為
homo = cv::findhomography(imagepoints2, imagepoints1, cv_ransac);
cout << homo
homo.at(1, 0) = 0;
homo.at(1, 1) = 1;
homo.at(2, 0) = 0;
homo.at(2, 1) = 0;
就沒有報錯了。 int64型別的使用
int型別範圍為 2 31,2 31 即 2147483648 2147483647,unsigned型別範圍為 0,2 32 即0 2147483648,當需要表示的整數小於10位時可以使用。當需要表示的整數大於10位時,使用int型別將會出現溢位,此時可以使用 int64型別。int64型別範圍...
6 6 型別推斷
6.6 型別推斷 我們曾經討論過值的型別推斷,知道在 c 3.0 中用 var 關鍵字,在 f 中用 let 繫結。從本節開始,我們將討論由 c 和 f 共有的另乙個方面,當在 c 中呼叫泛型方法時,如 option.some 清單 5.9 或 option.map 清單 6.13 可以顯式指定型別...
21型別轉換
典型案例總結 靜態型別轉換,編譯的時c 編譯器會做型別檢查 基本型別能轉換 但是不能轉換指標型別,只要隱式型別轉換可以的地方都可以使用static cast。若不同型別之間,進行強制型別轉換,用reinterpret cast 進行重新解釋。一般性結論 總結 static cast 和reinter...