¿Cómo convierto un cv :: Mat del tipo CV_32FC1 al tipo CV_64FC1 (equivalente a un cambio de float a double)?convert Matriz del tipo CV_32FC1 a CV_64FC1
Estoy abriendo una matriz que se guardó como XML (cvSave
) pero como un flotador. Esto significa que el campo <dt>
tiene el valor f
en el archivo. Necesito cambiarlo a d
para abrirlo. Pero prefiero no hacer esto, en cambio me gustaría abrirlo directamente como una matriz con elementos de tipo double, o convertirlo más tarde de float a double.
A continuación se muestra el código para abrir el archivo.
/** 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;
}
Además, si va a convertir de algo así como 16 U a 8U, es necesario agregar un factor de escala como tercer parámetro. 'A.convertTo (A, CV_8UC1, 255.0/65536.0);' –