引言
树莓派因其低成本和高性能而成为学习和开发图像处理应用的理想平台。OpenCV(Open Source Computer Vision Library)是一个功能强大的计算机视觉库,支持多种编程语言,包括C。在树莓派上安装OpenCV C库,可以让我们轻松地开展图像处理项目。本文将详细介绍如何在树莓派上安装OpenCV C库,并开启你的图像处理之旅。
安装依赖项
在安装OpenCV之前,确保你的树莓派上已安装以下依赖项:
- CMake
- Python3
- build-essential
- libpython3-dev
- libpng-dev
- libjpeg-dev
- zlib1g-dev
在终端中,使用以下命令安装这些依赖项:
sudo apt-get update
sudo apt-get install cmake python3 python3-dev build-essential libpython3-dev libpng-dev libjpeg-dev zlib1g-dev
下载OpenCV源代码
从OpenCV官方网站(https://opencv.org/releases/)下载适合你的树莓派的OpenCV源代码。选择最新版本的源代码包。
创建构建目录
在树莓派上创建一个目录用于存放OpenCV源代码和构建文件:
mkdir opencv_build
cd opencv_build
配置OpenCV
使用CMake配置OpenCV。首先,设置CMake变量,指定源代码目录和安装目录:
”`bash cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GStreamer=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENVX=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENAL=OFF \
-D WITH_GDAL=OFF \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D WITH_V