欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > OpenCV(第二关--读取图片和摄像头)实例+代码

OpenCV(第二关--读取图片和摄像头)实例+代码

2024/10/24 18:20:25 来源:https://blog.csdn.net/dhdjjfhdghh/article/details/141505638  浏览:    关键词:OpenCV(第二关--读取图片和摄像头)实例+代码

以下内容,皆为原创,制作不易,感谢大家的关注和点赞。

一.读取图片

        我们来读取图片,当你用代码读取后,可能会发现。怎么跟上传的图片颜色有些许的不一样。因为OpenCV的颜色通道是BGR,而我们平常用的matplotlib是RGB颜色通道。多少有差异。

import cv2
import numpy as np
import matplotlib.pyplot as pltgirl = cv2.imread("C:/Users/19159/Pictures/Camera Roll/11.png")
# matplotlib显示的图片与现实的图片不一样,因为opencv读进来的图片数据通道不是默认的RGB
# 而是BGR(蓝绿红灯)
plt.imshow(girl)

   给大家看一下,OpenCV读取后的图片是什么样子的,再对比原图片。以下第一个是读取后的。

  咳咳,抛开图片不谈,其实OpenCV还是有些区别于matplotlib。

 

二.读取摄像头

        这个部分还是挺好玩的,可以控制自己电脑的摄像头实时显示自己帅气的脸庞。

        

import cv2# 打开摄像头
cap = cv2.VideoCapture(0)# 检查摄像头是否成功打开
if not cap.isOpened():print("无法打开摄像头")exit()cv2.namedWindow('video', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video', 640, 480)# 循环读取摄像头的每一帧
while True:# 读一帧数据ret, frame = cap.read()# 根据ret做判断if not ret:print("无法读取摄像头数据")break# 显示数据cv2.imshow('video', frame)# 设置较短的等待时间,以便视频帧可以快速更新key = cv2.waitKey(1) & 0xFF  # 1毫秒等待时间if key == ord('q'):break# 释放资源
cap.release()
cv2.destroyAllWindows()

使用了 OpenCV 库(cv2模块),主要用于从摄像头捕获视频流,并在窗口中实时显示。下面是代码的逐行分析:

  1. import cv2:导入 OpenCV 库,这是处理图像和视频的基本库。

  2. cap = cv2.VideoCapture(0):创建一个 VideoCapture 对象,0 表示默认的摄像头设备。如果计算机有多个摄像头,可以通过更改数字来选择不同的摄像头。

  3. if not cap.isOpened()::检查摄像头是否成功打开。如果未成功,将打印错误消息并退出程序。

  4. cv2.namedWindow('video', cv2.WINDOW_NORMAL):创建一个窗口,用于显示视频流。cv2.WINDOW_NORMAL 表示窗口可以被调整大小。

  5. cv2.resizeWindow('video', 640, 480):设置窗口的大小为 640x480 像素。

  6. while True::开始一个无限循环,用于连续读取视频帧。

  7. ret, frame = cap.read():从摄像头读取一帧图像。ret 是一个布尔值,如果读取成功则为 Trueframe 是读取到的图像帧。

  8. if not ret::如果 retFalse,表示无法读取摄像头数据,打印错误消息并退出循环。

  9. cv2.imshow('video', frame):将读取到的帧显示在之前创建的窗口中。

  10. key = cv2.waitKey(1) & 0xFF:等待键盘输入,1 表示等待时间为 1 毫秒。& 0xFF 是为了确保获取的按键值在正确的范围内。

  11. if key == ord('q')::如果按下 'q' 键,则退出循环,停止视频捕获。

  12. break:退出循环。

  13. cap.release():释放 VideoCapture 对象,释放与摄像头相关的资源。

  14. cv2.destroyAllWindows():销毁所有由 OpenCV 创建的窗口。

 创建窗口后,窗口会读取你的摄像头,并实时显示画面,我社恐,就用花露水的贴纸挡一下我。

好了,今天的分享就到这里,感谢大家的关注和点赞。 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com