Radxa ROCK 3C开发板编译Opencv,支持调用树莓派摄像头模块V2

目录

  • [1、ROCK 3C和树莓派摄像头模块V2介绍](#1、ROCK 3C和树莓派摄像头模块V2介绍)
  • [2、ROCK 3C在rsetup开启支持](#2、ROCK 3C在rsetup开启支持)
  • 3、测试指令
  • 4、编译Opencv
    • [4.1 增加swap,确保内存够用](#4.1 增加swap,确保内存够用)
    • [4.2 安装依赖和下载opencv](#4.2 安装依赖和下载opencv)
    • [4.3 编译参考链接](#4.3 编译参考链接)
  • 5、使用opencv调用树莓派摄像头模块V2

1、ROCK 3C和树莓派摄像头模块V2介绍

ROCK 3C 是一款基于 RK3566 SoC 开发的SBC。

搭载了四核 Cortex-A55 ARM 处理器,板载 32 位 LPDDR4 内存。

主板预览图如下:

树莓派原装摄像头 V2 版是一款基于索尼 IMX219 的 800 万像素摄像头模块,通过CSI接口进行连接。

2、ROCK 3C在rsetup开启支持

没有开启支持前,是检测不到对应的video设备的

bash 复制代码
radxa@rock-3c:~$ ls /dev/video*
/dev/video-dec0  /dev/video-enc0

rsetup使用办法:
https://docs.radxa.com/rock3/rock3c/os-config/rsetup#rsetup

在终端输入rsetup,配置设备树 Overlays,空格选中Enable Raspberry Pi Camera v2

回到终端就可以检测到

3、测试指令

bash 复制代码
# 成功
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! videoconvert ! video/x-raw,format=NV12,width=1920,height=1080 ! jpegenc ! multifilesink location=/home/radxa/test.jpg

执行指令,开始读秒后按下 Ctrl + C即可拍照, 照片路径为 /home/radxa/test.jpg

使用cheese可用


但是pip安装的opencv-contrib-python无法调用

论坛发贴后后,得知需要opencv支持GStreamer ,所以我们通过编译获得一个支持GStreamer opencv

4、编译Opencv

4.1 增加swap,确保内存够用

bash 复制代码
radxa@rock-3c:~$ cd /opt
radxa@rock-3c:/opt$ sudo mkdir image
[sudo] radxa 的密码:
radxa@rock-3c:/opt$ sudo touch swap
radxa@rock-3c:/opt$ sudo dd if=/dev/zero of=/opt/image/swap bs=1024 count=2048000
记录了2048000+0 的读入
记录了2048000+0 的写出
2097152000字节(2.1 GB,2.0 GiB)已复制,101.993 s,20.6 MB/s

radxa@rock-3c:/opt$ sudo mkswap /opt/image/swap
mkswap: /opt/image/swap: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 2 GiB (2097147904 bytes)
no label, UUID=3d7f188b-76f5-4280-a40a-0a2a4ac51c56
radxa@rock-3c:/opt$ free -m
               total        used        free      shared  buff/cache   available
内存:       1983         381          21           4        1580        1533
交换:        991           1         990

radxa@rock-3c:/opt$ sudo vim /etc/fstab

4.2 安装依赖和下载opencv

bash 复制代码
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python3.9-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
sudo apt install gstreamer1.0*
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

opencv4.5包: https://pan.baidu.com/s/1DpXXZu_FRVVxTNJ9vlzrkw 提取码: 2rxp

我这里使用的是opencv4.5,在当前目录解压即可

bash 复制代码
cd opencv4.5.0
mkdir build
cd build

执行编译,DWITH_GSTREAMER=ON就是要添加的支持

bash 复制代码
sudo cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DPYTHON_DEFAULT_EXECUTABLE=$(which python3.9) \
-DPYTHON3_EXECUTABLE=$(which python3.9) \
-DWITH_GSTREAMER=ON \
-DPYTHON3_INCLUDE_DIR=/usr/include/python3.9 \
-DPYTHON3_INCLUDE_DIR2=/usr/include/aarch64-linux-gnu/python3.9 \
-DPYTHON3_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.9.so \
-DPYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3.9/dist-packages/numpy/core/include/ \
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
..

用make进行编译

bash 复制代码
sudo make -j4

等待编译完成,进行安装

bash 复制代码
sudo make install

4.3 编译参考链接

https://mp.weixin.qq.com/s/3v65UUPK0sYsuEulTngxvw

https://blog.csdn.net/Datapad/article/details/115965665

5、使用opencv调用树莓派摄像头模块V2

查看信息:

bash 复制代码
import cv2

pipeline = "v4l2src ! video/x-raw, width=640, height=480, framerate=15/1 ! videoconvert ! videoscale ! video/x-raw, width=640, height=480 ! appsink"
# cap = cv2.VideoCapture(pipeline, cv2.CAP_V4L) 
cap = cv2.VideoCapture(pipeline, cv2.CAP_GSTREAMER) 

while True:
    ret, frame = cap.read()
    if ret:
        cv2.imshow("frame", frame)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
相关推荐
逆小舟2 小时前
【STM32】学习准备、初识
stm32·嵌入式硬件
飞翔的佩奇3 小时前
【完整源码+数据集+部署教程】【天线&水】舰船战舰检测与分类图像分割系统源码&数据集全套:改进yolo11-repvit
前端·python·yolo·计算机视觉·数据集·yolo11·舰船战舰检测与分类图像分割系统
山烛3 小时前
一文读懂YOLOv4:目标检测领域的技术融合与性能突破
人工智能·yolo·目标检测·计算机视觉·yolov4
2401_836900335 小时前
YOLOv5:目标检测的实用派王者
人工智能·计算机视觉·目标跟踪·yolov5
周杰伦_Jay5 小时前
【MCP开发部署流程表格分析】MCP架构解析、开发流程、部署方案、安全性分析
人工智能·深度学习·opencv·机器学习·架构·transformer
sali-tec6 小时前
C# 基于halcon的视觉工作流-章49-网面破损
开发语言·图像处理·算法·计算机视觉·c#
点灯小铭6 小时前
基于单片机的多模式自动洗衣机设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计
La Pulga6 小时前
【STM32】RTC实时时钟
c语言·stm32·单片机·嵌入式硬件·mcu·实时音视频
m0_555762906 小时前
STM32产品程序测试完整指南
stm32·单片机·嵌入式硬件
普中科技7 小时前
【普中Hi3861开发攻略--基于鸿蒙OS】-- 第 26 章 WIFI实验-AP 建立网络
单片机·嵌入式硬件·wifi·liteos·hi3861·普中科技