Openmvg: ¿Cómo usar con OpenCV?

Creado en 15 abr. 2017  ·  6Comentarios  ·  Fuente: openMVG/openMVG

Quiero convertir cv::Mat a openMVG::Image.

¿Hay un openMVG::Image.getMat() no constante que pueda usar en:

cv::cv2eigen(cv::Mat, openMVG::Image.something())

EDITAR: para dar un poco más de información, la fuente de la imagen en mi programa es un OpenFrameworks ofImage, que puedo convertir a cv::Mat u obtener la matriz de píxeles sin firmar directamente.

Entonces, básicamente, lo que estoy buscando es una interfaz interna (no de un archivo) para configurar imágenes openMVG

Comentario más útil

¡Gracias! Funcionó exactamente como dijiste con una función de cambio de tamaño, nunca lo habría descubierto por mí mismo

    cv::Mat cv_image;
    ....
    Image<uint8_t> mvg_image;
    mvg_image.resize(cv_image.cols, cv_image.rows);
    cv::cv2eigen(cv_image, *(Image<uint8_t>::Base*)&mvg_image);

Todos 6 comentarios

Hola @itsdsk
Lo siguiente debe funcionar

        cv::Mat image_cv;
        image_cv = cv::imread( sView_filename, CV_LOAD_IMAGE_GRAYSCALE );
        Image<uint8_t> image_openmvg;
        cv::cv2eigen(image_cv, *(Image<uint8_t>::Base*)&image_openmvg);

¡Gracias! Funcionó exactamente como dijiste con una función de cambio de tamaño, nunca lo habría descubierto por mí mismo

    cv::Mat cv_image;
    ....
    Image<uint8_t> mvg_image;
    mvg_image.resize(cv_image.cols, cv_image.rows);
    cv::cv2eigen(cv_image, *(Image<uint8_t>::Base*)&mvg_image);

Cierre el problema si no tiene otros puntos para comentar.

Solo digo lo obvio, pero para que eso funcione, el objeto cv::Mat debe tener CV_8UC1 como su tipo escalar.

¿Qué pasa si quiero usarlo con una imagen RGB?

@a-mohsen

Abra un nuevo problema ya que el hilo que abrió tiene más de 1 año y su pregunta no está directamente relacionada con este problema (y puede ser interesante para la comunidad).

¿Fue útil esta página
0 / 5 - 0 calificaciones