Comment convertir un cv :: Mat de type CV_32FC1 en type CV_64FC1 (équivalent à un changement de float en double)?convertir Matrice de type CV_32FC1 en CV_64FC1
J'ouvre une matrice qui a été enregistrée en XML (cvSave
) mais en tant que flottant. Cela signifie que le champ <dt>
a la valeur f
dans le fichier. Je dois le changer à d
pour l'ouvrir. Mais je préférerais ne pas le faire, à la place je voudrais l'ouvrir directement en tant que Matrix avec des éléments de type double, ou le convertir plus tard de float en double.
Ci-dessous est mon code pour l'ouverture du fichier.
/** 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;
}
De plus, si vous convertissez de quelque chose comme 16U à 8U, vous devez ajouter un facteur de mise à l'échelle en tant que troisième paramètre. 'A.convertTo (A, CV_8UC1, 255.0/65536.0);' –