打开摄像头显示:
#!/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即可。
- 阅读全文 -