树莓派3b+opencv
时间: 2025-05-19 22:09:31 浏览: 10
### 安装和配置 OpenCV 的方法
#### 准备工作
在树莓派 3B+ 上安装 OpenCV 需要先完成一些准备工作。建议使用 Ubuntu Mate 或 Raspbian 系统作为基础操作系统[^1]。如果选择了 Raspbian,则可以参考特定教程来优化系统性能并减少不必要的软件包占用资源。
#### 更新系统
无论选择哪种 Linux 发行版,都需要更新现有软件包列表以确保获得最新依赖项和支持库:
```bash
sudo apt-get update && sudo apt-get upgrade -y
```
#### 安装必要的工具和依赖项
为了编译 C++ 版本的 OpenCV 3.4.1,需安装一系列开发工具链及相关依赖项:
```bash
sudo apt-get install build-essential cmake git pkg-config libgtk-3-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran \
openexr libatlas-base-dev python3-dev python3-numpy libtbb2 libtbb-dev \
libdc1394-22-dev -y
```
上述命令涵盖了构建过程中可能需要用到的各种多媒体支持、图像解码器以及其他核心组件[^4]。
#### 下载与编译 OpenCV 源代码
通过 Git 获取官方仓库中的指定版本 (此处为 v3.4.1),然后按照标准流程执行本地化定制编译操作:
1. **克隆项目**
```bash
cd ~
git clone https://github.com/opencv/opencv.git
cd ~/opencv
git checkout 3.4.1
```
2. **创建临时目录用于存储中间文件**
```bash
mkdir -p ~/opencv/build && cd ~/opencv/build
```
3. **运行 CMake 工具生成 Makefile 文件**
此阶段会检测当前环境中是否存在所需的前提条件,并据此调整最终产物特性设置。
```bash
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
```
4. **启动多线程模式下的实际编译过程**
调整 `-j` 参数值匹配目标硬件 CPU 核心数以便加速整体进度。
```bash
make -j$(nproc)
```
5. **正式部署至全局路径下**
编译完成后即可将其纳入系统默认查找范围之内供后续调用。
```bash
sudo make install
sudo ldconfig
```
#### 测试验证
编写一段简单的测试程序确认安装是否成功无误:
```cpp
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
int main() {
cv::Mat image = cv::imread("/path/to/image.jpg");
if(image.empty()) { std::cout << "Error loading image"; return -1; }
cv::imshow("Display window",image);
int k = cv::waitKey(0); // Wait indefinitely until keypress
return 0;
}
```
保存以上内容到名为 `test.cpp` 的文件里之后依次执行如下指令完成链接加载直至运行成果展示出来为止。
```bash
g++ test.cpp $(pkg-config --libs --cflags opencv4) -o test_program
./test_program
```
#### 使用 Python 接口简化流程
除了手动搭建外还可以借助 pip 方式快速实现相同目的不过需要注意提前满足对应前提约束才行比如 NumPy 库的存在与否都会影响成败几率大小等等情况发生概率高低不一而已具体取决于个人喜好程度差异罢了[^3].
---
阅读全文
相关推荐

















