2011-07-25 12 views
12

¿Puedo usar OpenCV para crear GUI que contengan botones, cuadros de lista, ... etc. por ejemplo?OpenCV y crear GUI

Gracias.

+1

Esta es una limitación frustrante de OpenCV. highGUI es casi todo lo que necesita para una interfaz gráfica de usuario, pero no del todo. Ver mi pregunta SO relacionada: http://stackoverflow.com/q/5874305/200688 – AndyL

Respuesta

13

OpenCV tiene highgui incorporado para hacer GUI.

Puede encontrar online tutorials para comenzar.

Tenga en cuenta que esta no es una extensa biblioteca de GUI. Solo puede hacer cosas básicas como abrir ventanas, dibujar puntos, líneas antialias, rectángulos y texto. Hay un control deslizante que se puede usar como un botón encendido/apagado. Si necesita más que eso, puede

  • acumulación cosas a sí mismo (por ejemplo, dibujar un rectángulo con el texto para hacer su propio botón), o
  • utilizar otra biblioteca como Qt que proporcionan un montón de widgets (botones , menús, listas, cuadros de diálogo ...)

¡Buena suerte si vas por la primera!

+0

Gracias por su respuesta. Conozco 'Highgui' y busqué ejemplos, pero no pude encontrar lo que pregunté. – Simplicity

+0

Acabo de agregar detalles ... – Simon

+3

HighGUI es muy limitado y ** no debe ** usarse para construir GUI. Su objetivo principal es mostrar imágenes/cuadros de video, y si necesita algo ligeramente más complejo que eso, tendrá que encontrar una biblioteca de terceros para eso (Qt, wxWidgets, ...). – karlphillip

4

Junto con las funciones highgui que Simon ha señalado, otras han utilizado OpenCV in conjunction con Qt. Es posible convertir los marcos de la cámara en imágenes en un widget QLabel y actualizar la imagen en la etiqueta periódicamente.

8

En el Learning OpenCV, se menciona el siguiente título en la página 101: Sin botones.

Y, esto es un poco de lo que se menciona en este título:

Desafortunadamente, HighGUI no proporciona ningún apoyo explícito para los botones. Por lo tanto, es la práctica más común, entre los particularmente vagos, para usar en cambio controles deslizantes con solo dos posiciones . Otra opción que ocurre a menudo en los ejemplos de OpenCV en .../opencv/ samples/c/es usar atajos de teclado en lugar de botones (ver, por ejemplo, la demostración de fl oodfi ll en el paquete de código fuente OpenCV). *

3

En Windows, puede usar cvGetWindowHandle para obtener el identificador de ventana (HWND). Con ese identificador puede llamar a CreateWindow desde WinAPI y colocar controles WinAPI en esa ventana.

Pero también deberá anular o enganchar el WindowProc que fue establecido por OpenCV para esa ventana. Enganche y anulación explicados aquí Multiple WndProc functions in Win32