今日继续我的Jetsonnano学习之路,今日尝试开启一下USB摄像头,显示拍摄的内容。
测试代码是搬运的官方说明,这里只是作笔记记录学习:
目录
额外模块准备:
测试代码分析:
运行效果:
额外模块准备:
首先准备一个USB摄像头,它长这样,将它接在任何一个Jetson上的USB口就行了。
测试代码分析:
import cv2
if __name__ == "__main__":
cap = cv2.VideoCapture(0)
if cap.isOpened():
window_handle = cv2.namedWindow("D435", cv2.WINDOW_AUTOSIZE)
# 逐帧显示
while cv2.getWindowProperty("D435", 0) >= 0:
ret_val, img = cap.read()
cv2.imshow("D435", img)
keyCode = cv2.waitKey(30) & 0xFF
if keyCode == 27:# ESC键退出
break
cap.release()
cv2.destroyAllWindows()
else:
print("打开摄像头失败")
1. 首先导入了OpenCV库:import cv2
2. 在主函数中,判断程序是否运行在主线程中:if __name__ == "__main__":
3. 创建一个VideoCapture对象来打开摄像头,参数"0"表示打开默认摄像头:cap =cv2.VideoCapture(0)
4. 检查摄像头是否成功打开:if cap.isOpened()
5. 创建一个窗口来显示摄像头画面:window_handle = cv2.namedWindow("D435", cv2.WINDOW_AUTOSIZE)
6. 进入循环,逐帧读取摄像头画面,并在窗口中显示:while cv2.getWindowProperty("D435", 0) >= 0:
- 读取一帧画面:ret_val, img = cap.read()
- 在窗口中显示画面:cv2.imshow("D435", img)
- 等待30毫秒,检测是否按下任意键:keyCode = cv2.waitKey(30) & 0xFF
- 如果按下的是ESC键(对应键码27),则退出循环:if keyCode == 27:7. 在退出循环后,释放摄像头资源:cap.release()
8. 关闭窗口:cv2.destroyAllWindows()
9. 如果无法打开摄像头,打印提示信息:"打开摄像头失败"