Como sugiere el título, el objetivo es convertir Direct3DCaptureFrame de Windows.Graphics.Capture API en un objeto de matriz disponible en OpenCvSharp ( Mat ) para que el marco capturado se pueda usar con la popular biblioteca de visión por computadora.
Hay un problema detallado disponible en GitHub que hace referencia a los intentos y hallazgos actuales. También incluye una muestra de cómo debería verse el resultado y qué hace a partir de ahora.
Personalmente, creo que mi camino no es el correcto y puede haber una manera más fácil de manejar esto, pero decidí mapear la memoria y copiarla en un byte[] . OpenCvSharp::Mat tiene sobrecargas de constructores que permiten hacer referencia a datos.
Si hay una manera mejor (con suerte, con el mismo rendimiento) y fácil de hacer esto, sugiérala. Me encantaría un poco de ayuda aquí.
Este problema fue solucionado recientemente por mí mismo.
Lo que faltaba era el relleno al hacer referencia al byte[] . Es necesario establecer el parámetro de step del constructor sobrecargado de Mat en width * (bytes / pixel) . En mi caso, los bytes / pixel eran 4 .