Hay diferentes maneras de instalar OpenCV Raspberry Pi. La más común hasta hace más bien poco es utilizando el propio código fuente de OpenCV.
Esto requiere de la compilación de las fuentes. Un trabajo bastante costoso pero que te permite tener un mayor control de la configuración de OpenCV Raspberry Pi.
Sin embargo, la forma más rápida que hay en la actualidad de instalar OpenCV Raspberry Pi es utilizando pip (gestor de paquetes de Python).
En este tutorial te enseñaré cómo instalar OpenCV en Raspberry Pi para que puedas programar tus propios proyectos de visión artificial.
Si tu sistema operativo es Windows puedes seguir esta guía paso a paso para instalar OpenCV en Windows.
Indice de contenidos

OpenCV y el gestor de paquetes pip
Antes de meternos de lleno para ver qué paquetes de OpenCV Raspberry Pi nos proporciona pip, sería interesante aclarar qué esto de pip.
pip es un administrador de paquetes para Python. Esto significa que gracias a pip vas a poder instalar y administrar librerías de Python que no se distribuyen como parte de la instalación estándar de Python.
Una de esas librerías es OpenCV pero existen miles de librerías que puedes instalar. Hacen de todo. Solo tienes que entrar a PyPi y comprobarlo por tí mismo.

Puedes encontrar NumPy, TensorFlow, Mahotas, … La herramienta pip proporciona un sistema muy eficiente para instalar y mantener todas estas librerías que, de otro modo, sería inviable.
Para comprobar que tienes pip instalado en tu máquina escribe el siguiente comando.
1 |
pip --version |
Obtendrás un resultado parecido a este aunque puede variar la versión.

Por defecto pip viene incluído en el instalador de Python desde la versión 3.4 de Python 3 y la versión 2.7 de Python 2. Si no tienes instalado pip deberías pensar en actualizar a una versión más moderna de Python.
De no ser así, en la documentación de pip encontrarás cómo instalar pip para tu versión concreta de Python.
Una vez instalado, si necesitas ayuda de cómo utilizar pip y de todos los comandos que admite puedes escribir el siguiente comando.
1 |
pip help |
Obteniendo algo parecido a esto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
Usage: pip [options] Commands: install Install packages. download Download packages. uninstall Uninstall packages. freeze Output installed packages in requirements format. list List installed packages. show Show information about installed packages. check Verify installed packages have compatible dependencies. config Manage local and global configuration. search Search PyPI for packages. cache Inspect and manage pip's wheel cache. wheel Build wheels from your requirements. hash Compute hashes of package archives. completion A helper command used for command completion. debug Show information useful for debugging. help Show help for commands. General Options: -h, --help Show help. --isolated Run pip in an isolated mode, ignoring environment variables and user configuration. -v, --verbose Give more output. Option is additive, and can be used up to 3 times. -V, --version Show version and exit. -q, --quiet Give less output. Option is additive, and can be used up to 3 times (corresponding to WARNING, ERROR, and CRITICAL logging levels). --log Path to a verbose appending log. --no-input Disable prompting for input. --proxy Specify a proxy in the form [user:passwd@]proxy.server:port. --retries Maximum number of retries each connection should attempt (default 5 times). --timeout Set the socket timeout (default 15 seconds). --exists-action Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort. --trusted-host Mark this host or host:port pair as trusted, even though it does not have valid or any HTTPS. --cert Path to alternate CA bundle. --client-cert Path to SSL client certificate, a single file containing the private key and the certificate in PEM format. --cache-dir Store the cache data in . --no-cache-dir Disable the cache. --disable-pip-version-check Don't periodically check PyPI to determine whether a new version of pip is available for download. Implied with --no-index. --no-color Suppress colored output. --no-python-version-warning Silence deprecation warnings for upcoming unsupported Pythons. --use-feature Enable new functionality, that may be backward incompatible. --use-deprecated Enable deprecated functionality, that will be removed in the future. |
Esto no es un tutorial de pip pero me ha parecido importante que por lo menos supieras esto. Ahora vamos al lío, instalar OpenCV Raspberry Pi.
Ojo, pip es una herramienta que gestiona paquetes para Python. Python es un lenguaje de programación multiplataforma por lo tanto, funciona tanto para Linux como para MacOS y, por supuesto, con Raspberry Pi.
Si buscas OpenCV en PyPi en el momento que estoy escribiendo este tutorial aparecen nada más y nada menos que 852 proyectos para OpenCV.

Y…¿qué paquete es el que hay que instalar?¿cuál es el adecuado?
La respuesta es que el paquete más completo y el adecuado es el opencv-contrib-python. Es la librería que te recomiendo instalar ya que contiene todos los módulos principales y además contiene todos los módulos extra contrib.

Ahora sólo nos queda una cosa y es instalar OpenCV Raspberry Pi con el gestor de paquetes pip.
Cómo instalar OpenCV Raspberry Pi con pip
Antes he dicho que si no compilas las fuentes de OpenCV, pierdes el control de la instalación a nivel de configuración. Al final, compilar es como hacer un traje a medida de un software.
Sin embargo, para Raspberry Pi esto no es cierto del todo.
El proyecto piwheels es un repositorio de Python que proporciona paquetes binarios precompilados específicos para Raspberry Pi, es decir, cada paquete es un traje hecho a medida para tu Raspberry Pi.

La ventaja de utilizar Raspberry Pi es que las versiones están acotadas. No puedes instalar un nuevo micro o una nueva tarjeta de vídeo. Esto hace fácil tener precompilados ciertos paquetes que se ajustan a las características de cada modelo de Raspberry Pi.
Además, esto hace que las instalaciones de paquetes en una Raspberry Pi con pip sean mucho más rápidas.
Dentro de piwheels están las famosas librerías NumPy, SciPy, scikit-learn, mahotas o tensorflow entre otras.
Por defecto, las últimas versiones del sistema operativo para Raspberry Pi, Raspberry Pi OS, incluyen la configuración en pip para que directamente vaya a buscar en el repositorio de piwheels.
Bueno vamos a empezar a instalar OpenCV Raspberry Pi con pip.
Instalación de OpenCV 4 con Raspberry Pi
Ha llegado el momento de instalar OpenCV Raspberry Pi. Lo primero que hay que resolver es ¿qué versión de OpenCV instalar?
Actualmente la última versión que hay disponible es la 4.5.1 sin embargo, si no quieres tener problemas la web oficial de piwheels recomienda instalar la versión 4.1.0.25 o la 4.1.1.26 si tienes instalado Raspberry Pi OS (el antiguo Raspbian ) Strech o si tienes instalada la última versión, Buster, puedes instalar la versión 4.4.0.46 de OpenCV.

Mira desde aquí las últimas versiones que puedes actualizar en tu versión de Raspberry Pi OS.
Y lo mismo te estás preguntando, ¿qué versión de Raspberry Pi OS tengo?
Ejecuta el siguiente comando para consultar los datos del sistema operativo instalado en tu Raspberry Pi.
1 |
sudo cat /etc/os-release |
Esto mostrará el archivo os-release y aquí podrás ver la versión de tu Raspberry Pi OS.

En principio según esta información yo podría instalar la versión 4.4.0.46 de OpenCV Raspberry Pi. En la propia página de piwheels si das al símbolo de + puedes ver el comando exacto para instalar la versión correspondiente.
Incluso te dice que debes instalar unos paquetes adicionales utilizando el gestor apt.

Y aquí nos surge un dilema. Que pasa si instalo la versión 4.4.0.46 OpenCV Raspberry Pi y mañana hacen compatible la versión 4.5.1.48 con mi sistema Buster.
Es más, y si quieres tener dos versiones diferentes porque tienes un programa que funciona muy bien con la 4.4 y no funciona con la 4.5.
Puede que esto para ti no tenga importancia y lo entiendo. Si vas a tener la Raspberry Pi ejecutando un programa se cámaras de seguridad o cualquier dispositivo estático, que esté o no actualizado no supone un problema grabe.
Pero para mi, que me gusta trastear con las diferentes versiones y que me llegan preguntas y dudas de mis alumnos que cada uno tiene una versión diferente, se hace indispensable poder tener instaladas varias versiones del software.
Por lo tanto, si estás en el primer caso lo único que tienes que hacer es ejecutar estas dos líneas de comando.
1 |
sudo apt install libaec0 libaom0 libatk-bridge2.0-0 libatk1.0-0 libatlas3-base libatspi2.0-0 libavcodec58 libavformat58 libavutil56 libbluray2 libcairo-gobject2 libcairo2 libchromaprint1 libcodec2-0.8.1 libcroco3 libdatrie1 libdrm2 libepoxy0 libfontconfig1 libgdk-pixbuf2.0-0 libgfortran5 libgme0 libgraphite2-3 libgsm1 libgtk-3-0 libharfbuzz0b libhdf5-103 libilmbase23 libjbig0 libmp3lame0 libmpg123-0 libogg0 libopenexr23 libopenjp2-7 libopenmpt0 libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0 librsvg2-2 libshine3 libsnappy1v5 libsoxr0 libspeex1 libssh-gcrypt-4 libswresample3 libswscale5 libsz2 libthai0 libtheora0 libtiff5 libtwolame0 libva-drm2 libva-x11-2 libva2 libvdpau1 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx5 libwavpack1 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebp6 libwebpmux3 libx264-155 libx265-165 libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxrandr2 libxrender1 libxvidcore4 libzvbi0 |
1 |
sudo pip3 install opencv-contrib-python==4.4.0.46 |
Esto instalará todo lo necesario para todo el sistema.
Si lo que necesitas es trabajar con diferentes versiones lo mejor es utilizar un entorno virtual de Python. Es algo muy útil y muy común para crear entornos aislados con sus propias librerías y directorios que no comparten con otros entornos.
La herramienta para hacer esto se llama virtualenv.
Instalar OpenCV Raspberry Pi con entorno virtual de Python
Yo no soy un experto en entornos virtuales. Los utilizo y punto así que lo que te voy a contar ahora lo he sacado de este blog donde lo explican perfectamente. Dicho esto yo te voy a explicar cómo lo he hecho yo.
Lo primero, ejecuta el siguiente comando que hemos obtenido de piwheels para instalar los paquetes adicionales que necesitamos para utilizar OpenCV Raspberry Pi.
1 |
sudo apt install libaec0 libaom0 libatk-bridge2.0-0 libatk1.0-0 libatlas3-base libatspi2.0-0 libavcodec58 libavformat58 libavutil56 libbluray2 libcairo-gobject2 libcairo2 libchromaprint1 libcodec2-0.8.1 libcroco3 libdatrie1 libdrm2 libepoxy0 libfontconfig1 libgdk-pixbuf2.0-0 libgfortran5 libgme0 libgraphite2-3 libgsm1 libgtk-3-0 libharfbuzz0b libhdf5-103 libilmbase23 libjbig0 libmp3lame0 libmpg123-0 libogg0 libopenexr23 libopenjp2-7 libopenmpt0 libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0 librsvg2-2 libshine3 libsnappy1v5 libsoxr0 libspeex1 libssh-gcrypt-4 libswresample3 libswscale5 libsz2 libthai0 libtheora0 libtiff5 libtwolame0 libva-drm2 libva-x11-2 libva2 libvdpau1 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx5 libwavpack1 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebp6 libwebpmux3 libx264-155 libx265-165 libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxrandr2 libxrender1 libxvidcore4 libzvbi0 |
Luego hay que instalar los paquetes virtualenv y virtualenvwrapper a través de pip ejecutando el siguiente comando.
1 |
sudo pip3 install virtualenv virtualenvwrapper |
Esto instalará los paquetes necesarios para crear entornos virtuales de Python. Ahora hay que editar el archivo ~/.bashrc ejecutando el siguiente comando.
1 |
sudo nano ~/.bashrc |
También puedes utiliza Vim, Emacs o el editor que utilices.
El comando anterior abrirá el archivo en el editor nano. Ves al final del archivo y añade las siguientes líneas.
1 2 3 |
export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh |

Ahora pulsa las teclas CTRL + x para salir. Aparecerá un mensaje preguntando si quieres guardar los cambios.

Presiona la letra «s» y luego aparecerá otro mensaje preguntando por el nombre de archivo.

Deja el nombre del archivo original .bashrc. Solo nos falta una cosa y es actualizar el terminal ejecutando el siguiente comando.
1 |
source ~/.bashrc |
Obtendrás un resultado como este.
Esto indica que el entorno virtual está listo para usarse. Ahora podemos ejecutar los comandos para gestionar los entornos virtuales en Python:
- mkvirtualenv: crea un entorno virtual.
- workon: activa o selecciona un entorno virtual.
- deactivate: desactiva un entorno virtual que está activado.
- rmvirtualenv: elimina un entorno virtual que hayas creado.
Para más información mira la documentación de virtualenvwrapper.
Ahora ya tenemos todo preparado para hacer una instalación de la versión 4.4.0.46 de OpenCV Rasbperry Pi pero antes hay que crear un entorno virtual con el siguiente comando.
1 |
mkvirtualenv opencv4-4 -p python3 |
Esto crea un entorno virtual llamado opencv4-4 donde todavía no hemos instalado OpenCV Raspberry Pi por cierto. Si ahora por ejemplo quisieras instalar la versión 4.1.0.25, podrías crearte un nuevo entorno virtual de la misma forma pero con otro nombre
1 |
mkvirtualenv opencv4-1 -p python3 |
De momento trabajamos con el primero que se llama opencv4-4 donde vamos a instalar la versión 4.4.0.46 de OpenCV Raspberry Pi.
Para activar el entorno virtual una vez creado utiliza el siguiente comando.
1 |
workon opencv4-4 |
Si tu entorno virtual se llama de otra manera utiliza el nombre correspondiente. Cuando entras en un entorno virtual aparece el nombre del entorno en la parte izquierda.
Eso indica que estás dentro y que todo lo que instales en ese entorno virtual de Python, solo afectará al propio entorno y no al sistema. Por ejemplo, si instalas OpenCV Raspberry Pi no podrás acceder desde fuera.
Ahora sí, ya puedes instalar OpenCV Raspberry Pi ejecutando el siguiente comando.
1 |
pip3 install opencv-contrib-python==4.4.0.46 |
Si todo ha ido bien obtendrás un mensaje como este.

Solo nos queda una cosa y es probar la instalación de OpenCV Raspberry Pi. Una vez dentro del entorno virtual Python ejecuta el comando
1 |
python |
Esto abre el interprete de Python donde podemos escribir nuestro código. Lo que vamos a hacer a continuación es comprobar la versión. Escribe lo siguiente
1 2 |
import cv2 cv2.__version__ |
Obtendrás algo parecido a esto.
Y con esto ya tienes instalado OpenCV Raspberry Pi y listo para empezar a crear proyectos Maker.
Y después de instalar OpenCV Raspberry Pi qué
Una vez has finalizado la instalación de OpenCV Raspberry Pi se abre un mundo nuevo de posibilidades para crear tus propios proyectos basados en esta librería de Visión Artificial y Machine Learning.
Puedes empezar con estos tutoriales aptos para ser utilizados con OpenCV Raspberry Pi:
Y nada más, hasta aquí el tutorial para instalar OpenCV Raspberry Pi. Cualquier duda o sugerencia en los comentarios.