CV_32FC1型のcv :: MatをCV_64FC1型に変換するにはどうすればよいですか(floatからdoubleへの変更に相当)?
XML(cvSave
)として保存されたが、フロートとして保存されたマトリックスを開いています。これは、フィールド<dt>
の値は、ファイル内でf
です。開くにはd
に変更する必要があります。しかし、私はこれをやるのではなく、代わりにdouble型の要素を持つMatrixとして直接開くか、後でfloatからdoubleに変換したいと思います。
以下は、ファイルを開くための私のコードです。
/** Load cv::Mat from XML file.
*/
cv::Mat loadMat(const std::string filename)
{
cv::Mat result;
cv::FileStorage fs(filename, cv::FileStorage::READ);
fs.getFirstTopLevelNode() >> result;
return result;
}
さて、私は薄暗いです。方法は次のとおりです。
私が望んでいることを正確に行う関数convertToがあります。
opencvでのマトリックス型変換 に感謝します。
ここに私がそれをする方法があります:
cv::Mat A = loadMat("mymat.xml"); // See function loadMat in the question!
A.convertTo(A, CV_64F);