树莓派摄像头配置
见csdn
第一次接触opencv,所以是从头开始学的。
摄像头拍照
raspistill -o image.jpg
摄像头录像
raspivid -o b.h264 -t 10000
openCV关于图像和视频的操作
numpy(关于库)
NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。
-
数组的算数和逻辑运算。
-
傅立叶变换和用于图形操作的例程。
-
与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。
一些参考资料地址
图像(加载操作)
import numpy as np
import cv2 as cv
#加载彩色灰度图像
img = cv.imread('video.jpg',0)
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
cv.imshow(A,B)#第一个参数是窗口名称,它是一个字符串。第二个参数是我们的对象。
视频(加载操作)
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
exit()
while True:
# 逐帧捕获
ret, frame = cap.read()
# 如果正确读取帧,ret为True
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
# 我们在框架上的操作到这里
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
# 显示结果帧e
cv.imshow('frame', gray)
if cv.waitKey(1) == ord('q'):
break
# 完成所有操作后,释放捕获器
cap.release()
cv.destroyAllWindows()
叠加ABC
法一:
取图像和有ABC的同样大小的照片,进行图像叠加。
图像加法
通过函数cv.add()
或仅通过numpy操作res = img1 + img2
添加两个图像。两个图像应具有相同的深度和类型,或者第二个图像可以只是一个标量值。
图像融合
对图像赋予不同的权重:cv.addWeighted()
法二:使用opencv绘图功能
向图像添加文本
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img,'ABC',(300,700), font, 4,(255,255,255),2,cv.LINE_AA)
cv.FONT_HERSHEY_SIMPLEX
:普通的简单字体。
问题:
1.现在只能实现图像叠加字符,视频还在尝试
2。还在熟悉opencv的使用