opencv ubuntu ubuntu-14.10

Instalación de OpenCV en Ubuntu 14.10



ubuntu-14.10 (3)

A menos que tenga razones especiales, sugeriría instalar el OpenCV que ya está en el repositorio de Ubuntu: sudo apt-get install libopencv-dev

Para códecs de video, sugiero simplemente intentar instalar todos los paquetes de codec relacionados con ffmpeg y gstreamer.

Estoy tratando de instalar OpenCV en Ubuntu 14.10 de acuerdo con las instrucciones . Instalé todas las dependencias mencionadas, pero cuando intento ejecutar make obtengo esos errores:

/home/ilia/opencv-2.4.8/modules/highgui/src/ffmpeg_codecs.hpp:114:7: error: ‘CODEC_ID_H261’ was not declared in this scope { CODEC_ID_H261, MKTAG(''H'', ''2'', ''6'', ''1'') }

para todos los codecs, como creo. Y estos errores:

In file included from /home/ilia/opencv-2.4.8/modules/highgui/src/cap_ffmpeg.cpp:45:0: /home/ilia/opencv-2.4.8/modules/highgui/src/cap_ffmpeg_impl.hpp: In member function ‘double CvCapture_FFMPEG::getProperty(int)’: /home/ilia/opencv-2.4.8/modules/highgui/src/cap_ffmpeg_impl.hpp:773:33: error: ‘AVStream’ has no member named ‘r_frame_rate’ return av_q2d(video_st->r_frame_rate); ^ /home/ilia/opencv-2.4.8/modules/highgui/src/cap_ffmpeg_impl.hpp: In member function ‘double CvCapture_FFMPEG::get_fps()’: /home/ilia/opencv-2.4.8/modules/highgui/src/cap_ffmpeg_impl.hpp:820:49: error: ‘AVStream’ has no member named ‘r_frame_rate’ double fps = r2d(ic->streams[video_stream]->r_frame_rate); ^ In file included from /home/ilia/opencv-2.4.8/modules/highgui/src/cap_ffmpeg.cpp:45:0: /home/ilia/opencv-2.4.8/modules/highgui/src/cap_ffmpeg_impl.hpp: In function ‘int icv_av_write_frame_FFMPEG(AVFormatContext*, AVStream*, uint8_t*, uint32_t, AVFrame*)’: /home/ilia/opencv-2.4.8/modules/highgui/src/cap_ffmpeg_impl.hpp:1236:72: error: ‘avcodec_encode_video’ was not declared in this scope out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture); ^

Parece que no puede encontrar algunos archivos de encabezado, pero instalé todos los paquetes dev necesarios libswscale-dev, libavdevice-dev, libavfilter-dev, libavformat-dev, libavcodec-dev. ¿Qué debo hacer para resolver estos problemas?


La instalación de OpenCV desde los repositorios de Ubuntu es una buena opción para la mayoría de los casos, pero a veces se necesita construir OpenCV a partir de las fuentes.

Por ejemplo, si necesita la funcionalidad no gratuita de OpenCV, o desea contribuir a este proyecto (debe usar la última versión para crear una solicitud de extracción), o quiere cambiar algo (sí, OpenCV también puede contener errores).

La posible solución es construir ffmpeg (es bastante simple) - Realmente no entiendo por qué Debian / Ubuntu prefiere libav sin alternativa.

Para instalar ffmpeg, debe descargar sus fuentes del sitio oficial o clonar el repositorio de GIT (git: //source.ffmpeg.org/ffmpeg.git), luego ingresar al directorio de origen y ejecutar

./configure --enable-shared --disable-static
hacer
sudo make install

también puede agregar otros parámetros para configure . También puedes construir bibliotecas estáticas, pero OpenCV no se puede construir con librerías ffmpeg estáticas (ahora no sé por qué).

Después de esto, puede descargar las fuentes de OpenCV desde el sitio de OpenCV o clonar el repositorio de GitHub ( repositorio de OpenCV ), crear una carpeta de compilación y ejecutarla de la siguiente manera:

cmake PATH_TO_SOURCES -DCMAKE_BUILD_TYPE = Lanzamiento
hacer
sudo make install

Por supuesto, PATH_TO_SOURCES debe ser una ruta real a tus fuentes de OpenCV.

Después de estos pasos, tiene la versión más reciente de OpenCV en su sistema.


Puedes intentar construir sin un ffmpeg:

cmake -DCMAKE_BUILD_TYPE=RELEASE -DWITH_FFMPEG=OFF .. make sudo make install