AI视觉处理--uv4l服务安装


安装uv4l服务

添加数字签名:stretch

$ curl http://www.linux-projects.org/listing/uv4l_repo/lpkey.asc | sudo apt-key add -

修改/etc/atp/sources.list添加源

deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/stretch stretch main

安装软件:

$ sudo apt-get update
$ sudo apt-get install uv4l uv4l-server 
$ sudo apt-get install uv4l-raspicam 

安装服务:

$ sudo apt-get uv4l-raspicam-extras

安装完成后,会生成一个uv4l-raspicam.service的服务,可用sysytemctl管理;
本机或其他主机可通过浏览器/VLC/访问 http://本机IP地址:8080/stream/video.mjpeg
也可像操作视频或者摄像机一样处理(但不可修改图像分辨率)

配置管理页面: http://本机IP地址:8080


配置文件说明: /etc/uv4l/uv4l-raspicam.conf

# 编码格式
encoding = mjpeg
# 视频分辨率设置
width  = 640
height = 480
# 帧率fps
framerate = 24

# -------- 服务器选项 ---------
# 设置端口
server-option = --port=8000
# 设置用户密码,设置后需要用户名(user)和密码才能访问
server-option = --user-password=myp4ssw0rd
# 设置管理员密码
server-option = --admin-password=myp4ssw0rd

- 阅读全文 -

AI视觉处理--基于Python的OpenCV应用笔记


打开摄像头显示:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import cv2
 
 # 打开摄像机:参数表示为摄像机编号
cap = cv2.VideoCapture(0)
# 设置视频参数:640x480
cap.set(3,640)
cap.set(4,480) 

while(True):
    # 从摄像机读入一帧图像
    ret, frame = cap.read()
    cv2.imshow('Title', frame)
   
    # 必须调用waitKey才能刷新显示(单位为ms)
    k = cv2.waitKey(10) & 0xff
    # 按下ESC退出程序
    if k == 27: 
        break
        
# 关闭摄像机        
cap.release()
cv2.destroyAllWindows()

指定显示器显示

DISPLAY=:0 python3 camara.py

图片显示:

img = cv2.imread('test.jpg')
cv2.imshow('image',img)
cv2.waitKey(0)

# 以灰度模式读入
gray = cv2.imgread("16.jpg",cv2.IMREAD_GRAYSCALE)

保存图片:

# 根据扩展名转换为对应格式
cv2.imwrite("123.png",img)

图像翻转:

# 图像翻转: 
# 0 - 上下翻转,
# 1 - 左右翻转, 
#-1 - 上下左右翻转
frame = cv2.flip(frame, 1) 

sudo LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so uv4l -v7 -f --sched-rr --mem-lock --auto-video_nr --driverraspicam --encoding mjpeg --width 640 --height 480 --framerate15

参考文档:http://www.linux-projects.org/uv4l/installation/


常用库说明:
采用 pip3 install 命令安装
matplotlib - 绘图

-i 用于指定临时源



运行报错:

ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8

指定LD_PRELOAD环境变量

LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1 python3 camra.py

或者导出环境变量

export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1

运行报错:

ASSERT: "false" in file qasciikey.cpp, line 501

原因分析: MobaXterm的锅

取消Settings-->Configuration-->X11-->Unix-compatible keyboard选项,并重启MobaXterm即可。


- 阅读全文 -


Copyright©2025 春天花会开, All Rights Reserved. Email: webmaster@oroct.com