Abstracto
- 4677
- 974
- Mateo Pantoja
Convenciones utilizadas en este artículo:
- $ - Ejecución en la línea de comando por un usuario no privilegiado
- # - Ejecución en la línea de comando por un superusor
- el comando real que se ejecutará en la línea de comando o el código del programa que se compilará
- PRODUCCIÓN: Salida producida en la línea de comando por ejecución de comandos
- NOTA: Notas generales e información adicional
Introducción
En palabras simples, una visión por computadora es un campo científico que intenta proporcionar una vista a la máquina. Este campo científico se ha expandido rápidamente en los últimos años. Entre los investigadores, este crecimiento se debe a muchas mejoras de los algoritmos de visión y entre los aficionados a la visión por computadora, esto se debe a los componentes de hardware y la potencia de procesamiento más baratas. La biblioteca OpenCV juega un gran papel en el campo de la visión por computadora, ya que ayuda enormemente a reducir el costo y el tiempo de preparación del entorno de investigación de la visión por computadora que necesitan estudiantes, aficionados y profesionales universitarios. OpenCV también proporciona funciones simples de usar para realizar el trabajo de una manera simple, efectiva y elegante. OpenCV fue iniciado por Intel, y luego se transformó en un proyecto de código abierto ahora disponible en SourceForge.neto. La biblioteca OpenCV tiene disponibilidad multiplataforma, y se escribe parcialmente en lenguaje C ++ y C. A pesar del hecho de que esta biblioteca está disponible en muchas distribuciones de Linux de sus repositorios de paquetes relevantes, en este artículo intentaremos instalar y usar la biblioteca OpenCV compilada a partir de un código fuente descargado de SourceForge.sitio web neto.
Las razones para compilar un código fuente pueden incluir:
- nueva versión 2.0.0 Lanzado recientemente y más funciones disponibles
- Se solucionaron algunos errores que afectaron a Linux OpenCV 1.0.0 versiones (como cvgetCaptureProperty () etc. )
- Hay más soporte disponible para OpenCV 2.0.0 versión que para el ex 1.0.0 versión
Este artículo comenzará con la instalación de OpenCV en Debian 5.0 (Lenny). Más tarde, un lector se guiará a través de una serie de ejemplos sobre cómo usar OpenCV para mostrar una imagen, reproducir un video y usar la cámara para capturar la transmisión de entrada de video.
Instalación
La siguiente sección describirá un proceso de instalación de la biblioteca OpenCV mediante la creación de binarios a partir de un código fuente disponible en SourceForge.neto. El procedimiento de instalación demostrado aquí se probó en Debian 5.0 (Lenny) y Ubuntu 9.10 (koala kármico). El procedimiento de instalación real debe ser similar o exactamente el mismo para la mayoría de las distribuciones de Linux, aparte del primer paso, donde las dependencias de paquetes se instalan desde la repositorios de distribución de Debian y Ubuntu relevantes. En el sistema RPM Linux, consultará su herramienta de gestión de paquetes Red Hat (RPM) para obtener alternativas a los requisitos previos de OpenCV descritos en la siguiente sección.
Requisitos previos
Primero, lo que debe hacerse es la instalación de requisitos previos requeridos por la biblioteca OpenCV. La lista de dependencias puede modificarse ligeramente de acuerdo con sus necesidades:
- LibavFormat -DeV - Archivos de desarrollo para libavformat la biblioteca de formato de archivo FFMPEG
- libgtk2.0 -DEV - Archivos de desarrollo para la biblioteca gráfica de interfaz de usuario GTK+
- PKG -Config: Administre banderas de compilación y enlace para bibliotecas
- libswscale -dev - archivos de desarrollo para libswscale la biblioteca de escala de video ffmpeg
- CMAKE: un sistema de fabricación de fuente abierta y de código abierto utilizado para la compilación del código fuente
- BZIP2-Compresor de archivo de clasificación de bloques de alta calidad utilizado para extraer el archivo fuente de OpenCV
El siguiente comando de Linux obtendrá e instalará automáticamente todos los paquetes requeridos y sus dependencias:
# apt-get install libavformat-dev libgtk2.0-Dev PKG-Config CMake Libswscale-Dev BZIP2
Obtención del código fuente de OpenCV
La versión actual de la biblioteca OpenCV al momento de la escritura es una versión 2.0.0. Puede descargar un código fuente de OpenCV señalando su navegador web a OpenCV-SourceForge.net o use el comando wget para adquirir un código fuente directamente en la línea de comando:
$ wget http: // descargas.Fuente de la fuente.Net/Project/OpenCVlibrary/OpenCV-Unix/2.0/opencv-2.0.0.alquitrán.bz2
Extraer el código fuente de OpenCV
Ya sea que haya utilizado el navegador web o la utilidad WGET para descargar el código fuente de la biblioteca OpenCV, debe terminar con OpenCV-2.0.0.alquitrán.BZ2 Tarball en su directorio de trabajo actual. El siguiente paso es extraer archivos de origen con el comando TAR. El siguiente comando Linux extraerá todos los archivos en OpenCV-2.0.0 Directorio:
$ tar xvjf opencv-2.0.0.alquitrán.bz2
Nuevo OpenCV-2.0.0 Directorio (aprox. 67mb) ahora deben estar disponibles en su directorio de trabajo actual y contendrán todos los archivos de origen necesarios para una compilación.
Compilación e instalación de binarios de OpenCV
Para compilar el código fuente de OpenCV, vamos a utilizar un sistema de código abierto CMake. Se establecerán los siguientes indicadores de compilación de configuración de CMake:
- Cmake_build_type = versión: cmake voltará un proyecto de lanzamiento
- Cmake_install_prefix =/usr/local: directorio para ser utilizado como destino de instalación
- Build_python_support: habilitar el soporte de Python
NOTA: Cmake Utility Por defecto no proporciona una forma de desinstalar su proyecto desde un sistema. Si tiene la necesidad de desinstalar OPENCCV desde su sistema, debe realizar los cambios apropiados antes de continuar con la compilación.
Navegue a OpenCV-2.0.0 Directorio que contiene un código fuente:
$ CD OpenCV-2.0.0/
Crear y navegar a un nuevo directorio para ser utilizado por CMake. En este caso, el nombre del directorio es el mismo que el tipo de proyecto, "versión":
$ MKDIR Release; lanzamiento de CD
Use Cmake para crear un archivo de configuración con los indicadores de configuración descritos anteriormente:
NOTA: Cmake_install_prefix El indicador se puede configurar en cualquier ruta de instalación deseada
CMake -d CMake_Build_Type = Release -d CMake_install_Prefix =/usr/local -d build_python_support = on ..
Después de la ejecución del comando cmake, el resumen de instalación se mostrará y se verá similar al siguiente.
PRODUCCIÓN:
- Configuración general para OpenCV 2.0.0 =======================================
-
- Compilador:
- C ++ Flags (Release): -Wall -PTHREAD -FFUNTIONS -SECECIONES -O3 -DNDEBUG -FOMIT -FRAME -POINER -O3 -FFAST -MATH -MMMX -DNDEBUG
- C ++ Flags (depuración): -wall -pthread -ffunction -sections -g -o0 -ddebug -d_debug
- Flags de enlazador (lanzamiento):
- Flags de enlazador (depuración):
-
- GUI:
- GTK+ 2.X: 1
- Gthread: 1
-
- Imagen I/O:
- JPEG: verdadero
- PNG: verdadero
- TIFF: FALSO
- Jasper: Falso
-
- Video de E/S:
- DC1394 1.X: 0
- DC1394 2.X: 0
- Ffmpeg: 1
- Códec: 1
- Formato: 1
- Util: 1
- SWSCALE: 1
- estilo gentoo: 1
- Gstreamer: 0
- Unicap:
- V4L/V4L2: 1/1
- Xine: 0
-
- Interfaces:
- Old Python: 0
- Python: en
- Use IPP: No
- Build Documation 0
-
- Ruta de instalación: /usr /local
-
- cvconfig.H está en:/home/sandbox/opencv-2.0.0/Liberación
- -
-
- Configuración de Hecho
- Generando hecho
- Se han escrito archivos de compilación en:/home/sandbox/opencv-2.0.0/Liberación
Cuando la ejecución del comando cmake no produjo ningún error, entonces estamos listos para compilar un código fuente.:
NOTA: Habrá una serie de mensajes de advertencia en su terminal durante un proceso de compilación. Estos mensajes de advertencia pueden ignorarse, a menos que afecten su configuración de entorno OpenCV preferida!
$ make
Si no se mostraron errores en el terminal y el diálogo de progreso alcanzó [100%] durante el proceso de compilación, estamos listos para instalar bibliotecas OpenCV. La instalación es opcional siempre que su variable ambiental ld_library_path esté vinculada a un directorio apropiado de OpenCV construido. Si desea instalar OpenCV en /usr /local según lo establecido por los indicadores CMake anteriores, ejecute un siguiente comando Linux:
# Haz instalar
Exporte la ruta correcta a la variable de entorno LD_Library_Path y use LDConfig para vincular dinámicamente una biblioteca OpenCV:
$ Export ld_library_path =/usr/local/lib/: $ ld_library_path
# ldconfig
Si no desea instalar la biblioteca OPENCV, simplemente debe exportar una ruta correcta a la biblioteca OPENCV Directorio de compilación para informarle a su sistema dónde se encuentra la biblioteca. Supongamos que su nuevo directorio de lanzamiento se encuentra en ~/openCV-2.0.0/Libere, entonces su ruta de exportación se verá así:
$ export ld_library_path = ~/opencv-2.0.0/versión/: $ ld_library_path
# ldconfig
Esto completa un procedimiento de instalación de la biblioteca OpenCV. Para obtener información adicional con respecto a la instalación de OpenCV, visite la Guía de instalación de OpenCV.
Ejemplos de OpenCV
Sin prolongar una discusión sobre qué es la visión por computadora y cómo está relacionado con OpenCV, ahora nos moveremos directamente a algunos ejemplos sobre cómo escribir, compilar y ejecutar programas simples utilizando la biblioteca OpenCV. Si está interesado en una introducción más intensa a la visión de la computadora y OpenCV, le recomiendo un libro: "Aprender OpenCV: Visión por computadora con la Biblioteca OpenCV de Gary Bradski y Adrian Kaehler".
Una conversión de imagen
Comencemos con algo realmente simple y son 7 líneas de código para convertir la imagen entre los siguientes tipos de imágenes:
- Windows Bitmaps - BMP, DIB
- Archivos JPEG - JPEG, JPG, JPE
- Gráficos de red portátiles - PNG
- Formato de imagen portátil: PBM, PGM, PPM
- Rásteres del sol - Sr, Ras
- Archivos TIFF - TIFF, TIF
El siguiente programa aceptará dos argumentos de línea de comandos, imagen de origen e imagen de destino. La imagen de origen se almacenará como un tipo de imagen especificado por la extensión del archivo de imagen de destino. Guarde el siguiente código en un archivo llamado imagen conversión.C :
#Include "Highgui.H "
int main (int argc, char ** argv)
IPlimage* img = cvLoadImage (argv [1]);
cvsaveImage (argv [2], img);
CVReleaseImage (e IMG);
return0;
El código fuente de nuestro nuevo programa está listo y aquí viene la parte de compilación. Suponiendo que haya guardado su primer programa OpenCV como conversión de imágenes.C Puede compilar su programa con el siguiente comando Linux:
$ G ++ 'PKG-Config OpenCV--CFlags-Conversión de imágenes de Libs'.conversión de imágenes C -O
Después de la compilación exitosa, se crea un nuevo archivo binario ejecutable llamado Conversión de imágenes en su directorio de trabajo actual. Antes de probar este nuevo programa, necesitamos una imagen de muestra:
$ wget -o imagen.png http: // www.LinuxConfig.org/Templates/rhuk_milkyway/images/mw_joomla_logo.png
wget descargado y guardado una imagen de imagen.PNG en su directorio actual, y ahora podemos intentar convertir esta imagen en cualquier tipo de imagen enumerado anteriormente. El siguiente comando Linux convertirá el tipo de imagen PNG en JPG. Suponiendo que la compilación del programa no produjo ningún error y su archivo binario se guarda como conversión de imágenes, puede convertir entre dos tipos de imágenes con el siguiente comando Linux:
ps ./Imagen de conversión de imagen.imagen de PNG.JPG
Para confirmar que la imagen se convirtió, se puede usar un comando de archivo para mostrar un tipo de archivo para un archivo determinado como argumento:
$ Archivo de imagen.*
PRODUCCIÓN:
imagen.JPG: datos de imagen JPEG, JFIF Standard 1.01
imagen.PNG: imagen PNG, 270 x 105, 8 bits/color RGBA, no interesado
Cuando mira el comando de compilación una vez más, puede observar que se había utilizado una utilidad PKG -Config para recuperar una ubicación de una biblioteca OpenCV con el uso de la opción -cflags, así como para obtener todas las dependencias utilizando la opción -libs. Por lo tanto, se puede construir un comando alternativo para el anterior sin la utilidad PKG-Config para verse algo así:
g ++ -i/usr/local/include/opencv -l/usr/local/lib \
-lcxcore -lcv -lhighgui -lcvaux -lml conversión de imagen.conversión de imágenes C -O
Sin embargo, en ambos casos, el comando de compilación creará dependencias de la biblioteca no deseadas:
$ LDD Conversión de imágenes | GREP LOCAL
PRODUCCIÓN:
libcxcore.entonces.2.0 =>/usr/local/lib/libcxcore.entonces.2.0 (0xb7ccc000)
libcv.entonces.2.0 =>/usr/local/lib/libcv.entonces.2.0 (0xb7a7a000)
libhighgui.entonces.2.0 =>/usr/local/lib/libhighgui.entonces.2.0 (0xb7a3f000)
libcvaux.entonces.2.0 =>/usr/local/lib/libcvaux.entonces.2.0 (0xb793b000)
libml.entonces.2.0 =>/usr/local/lib/libml.entonces.2.0 (0xb78d8000)
Nuestro programa depende de HighGui de OpenCV.H Biblioteca y, por lo tanto, incluyendo las dependencias de -lcvaux -lml -lcxcore y -lcv en un comando de compilación no es necesario. Una versión abreviada del comando de compilación se verá así:
$ G ++ -I/USR/LOCAL/INDECCIÓN/OPENCV -LHIGHGUI CONVERSIÓN DE IMAGEN.conversión de imágenes C -O
En consecuencia, se había reducido la dependencia de una biblioteca de programa:
$ LDD Conversión de imágenes | GREP LOCAL
PRODUCCIÓN:
libhighgui.entonces.2.0 =>/usr/local/lib/libhighgui.entonces.2.0 (0xb7f61000)
libcxcore.entonces.2.0 =>/usr/local/lib/libcxcore.entonces.2.0 (0xb7a75000)
libcv.entonces.2.0 =>/usr/local/lib/libcv.entonces.2.0 (0xb7823000)
De ahora en adelante, depende de usted cómo compilas los siguientes ejemplos en este artículo. Tenga en cuenta que el primer comando de compilación, incluido PKG-config, podrá compilar todos los ejemplos. Sin embargo, puede producir un binario con dependencias excesivas.
Muestra una imagen
En este punto, hemos podido convertir un tipo de imagen y confirmar su meta descripción por comando de archivo. Es hora de mostrar una imagen en la pantalla y confirmar visualmente que se convirtió correctamente. El siguiente programa de ejemplo mostrará una imagen en la pantalla:
#Include "Highgui.H "
int main (int argc, char ** argv)
// CVLoadImage determina un tipo de imagen y crea datos de datos con el tamaño apropiado
IPlimage* img = cvLoadImage (argv [1]);
// Crear una ventana. El nombre de la ventana está determinado por un argumento suministrado
cvnamedwindow (argv [1], cv_window_autosize);
// Muestra una imagen dentro y por la ventana. El nombre de la ventana está determinado por un argumento suministrado
cvShowimage (argv [1], img);
// espera indefinidamente para ver la tecla de tecla
cvwaitkey (0);
// libera puntero a un objeto
CVReleaseImage (e IMG);
// destruir una ventana
cvdestroywindow (argv [1]);
NOTA: Regrese a una sección de conversión de imagen arriba, si necesita ayuda sobre cómo compilar este programa OpenCV.
Ejecución de este programa de imagen de pantalla con una imagen.JPG producido en la sección anterior mostrará esta imagen en la pantalla:
$ Imagen de Implay-Image.JPG
PRODUCCIÓN:
Gaussiano suave
También puede intentar crear una transformación de imagen simple utilizando el método suave gaussiano. Agregue una línea siguiente a su código de imagen de pantalla antes de una llamada de función CVShowimage:
…
cvnamedwindow (argv [1], cv_window_autosize);
cvsmooth (img, img, cv_gaussian, 9, 9);
cvShowimage (argv [1], img);
…
y agregue como una primera línea a su programa '#include “CV.Directiva H "'.
Esto incorporará un método suave gaussiano centrado en cada píxel con un área de 9 x 9 en la imagen de salida. Después de la compilación y la ejecución se presentará una siguiente salida:
PRODUCCIÓN:
Reproduce el video
Esta sección incluye un código de programa que creará un reproductor de video simple usando la biblioteca OpenCV. Video de muestra, árbol.AVI se puede encontrar en su OpenCV-2.0.0 Directorio donde ha extraído sus archivos de origen (OpenCV-2.0.0/muestras/c/árbol.avi):
#Include "CV.H "
#Include "Highgui.H "
// Inicializar variables globales
int g_slider_position = 0; // Posición de TrackBar
CvCapture* g_capture = null; // estructura para crear una entrada de video
// Rutina a llamar cuando el usuario mueve un control deslizante de TrackBar
nulo ontrackbarslide (int pos)
cvSetCaptureProperty (
g_capture,
CV_CAP_PROP_POS_FRAMES,
pajita
);
int main (int argc, char ** argv)
// Crear una ventana con el tamaño apropiado. El nombre de Windows se determina por el nombre del archivo
// suministrado como argumento
cvnamedwindow (argv [1], cv_window_autosize);
// video abierto
g_capture = cvCreateFileCapture (argv [1]);
// establecer la posición de lectura en unidades de cuadros y recuperar el número total de marcos
int frames = (int) cvgetCaptureProperty (
g_capture,
CV_CAP_PROP_FRAME_COUNT
);
// No cree treackbar si el video no incluye una información
// aproximadamente el número de cuadros
if (cuadros!= 0)
CVCreatEtrackbar (
"Posición",
Argv [1],
& g_slider_position,
marcos,
ontrackbarslide
);
// Mostrar marco de video por marco
Marco iPlimage*;
mientras (1)
frame = cvQueryFrame (g_capture);
si( !marco) romper;
cvShowimage (argv [1], marco);
// Establecer TrackBar en una posición de cuadro actual
cvSetTrackBarpos ("Posición", Argv [1], G_SLider_Position);
g_slider_position ++;
char c = cvwaitkey (33);
// renuncia si se presiona ESC
if (c == 27) ruptura;
// memoria libre
cvreleaseCapture (& g_capture);
cvdestroywindow (argv [1]);
return (0);
NOTA: Regrese a una sección de conversión de imagen arriba, si necesita ayuda sobre cómo compilar este programa OpenCV.
Ejecute su nuevo programa OpenCV y, como argumento, suministre un archivo de video:
ps ./Video-Player ~/OpenCV-2.0.0/muestras/c/árbol.avi
PRODUCCIÓN:
Entrada de una cámara de video
El objetivo de esta sección es proporcionar algunos consejos simples sobre cómo configurar una cámara en un sistema Linux y cómo confirmar que su cámara es reconocida correctamente por su sistema. Cuando su cámara esté lista, se le presentará un programa simple que puede mostrar un video usando una cámara de video como entrada.
Para este artículo he usado un Logitech, Inc. Cámara QuickCam Pro 9000. Instalación de esta cámara en Debian 5.0 o Ubuntu 9.El sistema 10 (Karmic Koala) fue un simple procedimiento de plug & play. Aquí hay algunos sugerencias sobre cómo confirmar que su cámara había sido reconocida por su sistema:
NOTA: Su salida será diferente !
$ lsusb
PRODUCCIÓN:
Bus 002 Dispositivo 003: ID 046d: 0990 Logitech, Inc. Quickcam Pro 9000
Bus 002 Dispositivo 001: ID 1D6B: 0002 Linux Foundation 2.0 Hub de raíz
Bus 001 Dispositivo 002: ID 045E: 00d1 Microsoft Corp. Mouse óptico con rueda de inclinación
Bus 001 dispositivo 001: ID 1D6B: 0001 Linux Foundation 1.1 centro de raíz
El comando LSUSB revela un tipo de cámara conectado a su sistema. La salida del comando LSUSB no es necesario significa que su cámara ahora esté lista para usar. Veamos si algunos módulos están asociados con el video:
$ LSMOD | Video de GREP
PRODUCCIÓN:
uvcvideo 45800 0
compat_ioctl32 1312 1 uvcvideo
VideOdeV 27520 1 Uvcvideo
V4L1_COMPAT 12260 2 UVCVIDEO, VIDEODEV
USBCORE 118192 7 SND_USB_AUDIO, SND_USB_LIB, UVCVIDEO, USBHID, EHCI_HCD, OHCI_HCD
Esto parece muy prometedor. Mi cámara está usando el módulo uvcvideo. Si no ve ningún outputut o solo ve la salida no relacionada con su dispositivo de cámara, es posible que necesite recompilar su núcleo o instalar un módulo apropiado.
Ahora necesitamos encontrar un archivo de dispositivo correspondiente con su cámara. Para hacer eso usamos la utilidad XAWTV:
NOTA: Si el comando XAWTV no es AVAIALIBLE, necesita instalar el paquete XAWTV.
$ xawtv -hwscan
PRODUCCIÓN:
Este es xawtv-3.95.dfsg.1, ejecutándose en Linux/i686 (2.6.26-2-686)
Buscando dispositivos disponibles
Puerto 65-96
Tipo: xvideo, escalador de imágenes
Nombre: NV Video Blitter
/dev/video0: ok [-device/dev/video0]
Tipo: V4L2
Nombre: cámara UVC (046d: 0990)
FLAGS: Captura
El archivo del dispositivo asociado con mi cámara es /dev /video0 . También puede ver un error en su terminal diciendo: Abrir /dev /video0: permiso denegado. Para solucionar este problema, debe hacer que usted sea parte de un "video" grupal. Ahora pruebe su cámara con un siguiente comando Linux:
$ xawtv -c /dev /video0
Si tuvo algunos problemas en algunos de los pasos anteriores, aquí hay algunos enlaces, lo que puede ayudarlo a solucionar problemas de su problema:
- Compatibilidad de la cámara Linux OpenCV
- Cámica web de Linux Howto
- Cámaras compatibles con controladores SPCA5XX
- Cámaras compatibles con controladores UVCVIDEO
Usar una cámara con la biblioteca OpenCV es simple como escribir un programa para reproducir video. Copie un código fuente creado previamente de su programa de reproductor de video y cambie la línea:
CvCapture* capture = cvCreateFileCapture (argv [1]);
a:
CvCapture* capture = cvCreateCamerACapture (0);
Entonces, todo el código se verá similar al siguiente:
#Include "Highgui.H "
int main (int argc, char ** argv)
cvnamedwindow ("ejemplo2", cv_window_autosize);
CvCapture* capture = cvCreateCamerACapture (0);
Marco iPlimage*;
mientras (1)
marco = cvQueryFrame (captura);
si( !marco) romper;
cvShowImage ("Ejemplo2", marco);
char c = cvwaitkey (33);
if (c == 27) ruptura;
cvreleaseCapture (y captura);
cvdestroyWindow ("Ejemplo2");
Observe que una función CVCreateCamerACapture () no tomó ningún archivo o argumento de dispositivo específico. En este caso, OpenCV comenzará a usar la primera cámara disponible en su sistema. Compilar y ejecutar este programa y si todo hasta este punto salió bien, debería verse en su pantalla.
NOTA: Regrese a una sección de conversión de imagen arriba, si necesita ayuda sobre cómo compilar este programa OpenCV.
Escriba el archivo AVI desde una cámara
El último ejemplo intentará leer una entrada de una cámara y escribirla en un archivo. Mientras tanto, el programa también mostrará una ventana con una transmisión de video de entrada de la cámara. La entrada de video se guarda en un archivo suministrado como argumento en la línea de comando. El códec utilizado se especifica por FourCc (Código de cuatro caracteres) MJPG que en este caso es Motion JPEG. Este programa de muestra es muy básico y hay mucho margen de mejora:
#incluir
#incluir
Main (int argc, char* argv [])
CvCapture* capture = null;
captura = cvCreateCamerACapture (0);
IPlimage *Frames = cvQueryFrame (captura);
// Obtener un tamaño de marco para ser utilizado por la estructura del escritor
Tamaño cvsize = CVSize (
(int) cvgetCaptureProperty (captura, cv_cap_prop_frame_width),
(int) cvgetCaptureProperty (captura, cv_cap_prop_frame_height)
);
// Declarar la estructura del escritor
// Use FourCC (Código de cuatro caracteres) MJPG, el Códec JPEG de movimiento
// El archivo de salida se especifica mediante el primer argumento
Cvvideowriter *escritor = cvCreateVideoWriter (
Argv [1],
Cv_fourcc ('m', 'j', 'p', 'g'),
30, // establecer FPS
tamaño
);
// crear una nueva ventana
cvnamedwindow ("Grabación ... presione ESC para detener !", Cv_window_autosize);
// Mostrar captura en la ventana y grabar en un archivo
// Grabar hasta que el usuario llegue a la tecla ESC
mientras (1)
Frames = cvQueryframe (captura);
si( !marcos) romper;
CVShowimage ("Grabación ... Presione Esc para detenerse !", marcos);
CVWriteFrame (escritor, marcos);
char c = cvwaitkey (33);
if (c == 27) ruptura;
cvreleaseVideowriter (& escritor);
cvreleaseCapture (y captura);
cvdestroywindow ("Grabación ... presione ESC para detener !");
return0;
Suponiendo que guardó y compiló esta programación como "Guardar-Camera-Input", puede estratificar la grabación de un video en un archivo de video.avi con este comando:
NOTA: Regrese a una sección de conversión de imagen arriba, si necesita ayuda sobre cómo compilar este programa OpenCV.
ps ./Save-Camera-Input Video-File.avi
Conclusión
Este artículo debería darle un buen comienzo a la biblioteca OpenCV desde una perspectiva de instalación. Los ejemplos presentados no tienen mucho que ver con la visión por computadora en sí, sino que proporcionan un buen campo de pruebas para su instalación de OpenCV. Incluso a partir de estos simples ejemplos de OpenCV, también está claro que OpenCV es una biblioteca altamente civilizada, ya que con solo un par de líneas de código OpenCV puede lograr excelentes resultados. Su comentario sobre este artículo es muy apreciado, ya que puede tener un gran impacto en la calidad del artículo. Se acerca más sobre OpenCV, así que estad atentos subcribiendo a LinuxConfig.Org RSS Feed (esquina superior izquierda).
Tutoriales de Linux relacionados:
- Cosas para instalar en Ubuntu 20.04
- Cómo arrancar dual Kali Linux y Windows 10
- El mejor software de edición de video en Linux
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Una introducción a la automatización, herramientas y técnicas de Linux
- Mejor lector de PDF para Linux
- Cómo obtener la dirección MAC en Linux
- Mint 20: Mejor que Ubuntu y Microsoft Windows?
- Manjaro Linux Windows 10 Dual Boot
- Archivos de configuración de Linux: los 30 principales más importantes