@TOC树莓派学习记录(1)图像的读取
def capture():
cap=cv2.VideoCapture(0) # 打开摄像头
ret,frame=cap.read() #返回一个bool值和一个帧图像
if ret:
print(‘capture succed’)
cv2.imwrite(‘capture.jpg’,frame)
else:
print(‘capture failed’)
cap.release() #释放内存
上边是一个简单的从树莓派摄像头读取图像的代码
主要是三个函数
1.VideoCapture()
参数是0,表示打开笔记本的内置摄像头,参数是视频文件路径则打开视频。
如VideoCapture(“文件路径”)
2.read()
read()函数有两个返回值,第一个值是bool型,读取帧成功则返回true,否则返回false。第二个返回值是每一帧的图像,是个三维矩阵。
简单的说明一下帧:
帧——就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。 一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。 我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。
3.release()
release()是一个释放捕捉的函数,在C++和面向对象程序设计里面,我们经常要使用一些设备,比如一个简单的使用鼠标绘图程序吧,我们要先使用SetCaputer()函数获取鼠标的控制权,但在你使用完成后电脑没有你的指令就不会释放鼠标让你继续作图,这时候你就需要用到Release()函数释放鼠标。
在这里就是返回摄像头的控制权。
第一次写,如有错误,敬请指正。