type convertto clase bitwise_and opencv matrix double

convertto - opencv mat type



convertir la matriz del tipo CV_32FC1 a CV_64FC1 (1)

¿Cómo convierto un cv :: Mat del tipo CV_32FC1 al tipo CV_64FC1 (equivalente a un cambio de float a double)?

Estoy abriendo una Matriz que se guardó como XML ( cvSave ) pero como un float. 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 está mi 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; }


De acuerdo, soy un imbécil. Aquí es cómo va:

Existe la función convertTo que hace exactamente lo que quiero.

Gracias por la conversión de tipo de matriz en opencv para señalar esto.

Así es como lo hago:

cv::Mat A = loadMat("mymat.xml"); // See function loadMat in the question! A.convertTo(A, CV_64F);