当前位置: 首页 > news >正文

使用Opencv-python库读取图像、本地视频和摄像头实时数据

使用Opencv-python库读取图像、本地视频和摄像头实时数据

Python中使用OpenCV读取图像、本地视频和摄像头数据很简单,
首先需要安装Python,然后安装Opencv-python库

pip install opencv-python

然后在PyCharm或者VScode等IDE中输入对应的Python代码

一、使用opencv-python读取图像

Lena.jpg
比如说我们要显示上面这幅数字图像处理中的lena.jpg这幅图像,读取的python代码如下所示:

import cv2# Load an image using imread
img = cv2.imread("images/lena.jpg")
# img = cv2.imread("Resources/test.png")
# Display image
cv2.imshow("Lena image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在Python中运行结果如下:
显示图像

使用opencv-python读取本地视频

Opencv-python在线文档中有关于的Python示例代码:https://docs.opencv.org/4.9.0/dd/d43/tutorial_py_video_display.html

import numpy as np
import cv2 as cv
cap = cv.VideoCapture('vtest.avi')
while cap.isOpened():ret, frame = cap.read()# if frame is read correctly ret is Trueif not ret:print("Can't receive frame (stream end?). Exiting ...")breakgray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)cv.imshow('frame', gray)if cv.waitKey(1) == ord('q'):break
cap.release()
cv.destroyAllWindows()

test_video.mp4
视频资源可以到https://github.com/murtazahassan/Learn-OpenCV-in-3-hours/blob/master/Resources/test_video.mp4下载
相关的显示本地视频的Python代码如下:

import cv2frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture("Resources/test_video.mp4")
while True:success, img = cap.read()img = cv2.resize(img, (frameWidth, frameHeight))cv2.imshow("Result", img)if cv2.waitKey(1) & 0xFF == ord('q'):break
cap.release()
cv2.destroyAllWindows()

相应的运行结果如下图所示:
读取本地视频并显示

三、使用opencv-python读取摄像头数据并实时显示

使用opencv-python读取摄像头数据是非简单,opencv-python文档tutorial_py_video_display里面有对应的示例代码,如下:

import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():print("Cannot open camera")exit()
while True:# Capture frame-by-frameret, frame = cap.read()# if frame is read correctly ret is Trueif not ret:print("Can't receive frame (stream end?). Exiting ...")break# Our operations on the frame come heregray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# Display the resulting framecv.imshow('frame', gray)# 等待1毫秒,如果用户按下q键则退出循环if cv.waitKey(1) == ord('q'):break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()

我本地读取摄像头数据并显示的python代码如下:

import cv2frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture(0)
# cap.set(3, frameWidth)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, frameWidth)
# cap.set(4, frameHeight)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frameHeight)
# cap.set(10, 50)
cap.set(cv2.CAP_PROP_BRIGHTNESS, 50)while True:success, img = cap.read()cv2.imshow("Result", img)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()
cv2.destroyAllWindows()

运行结果如下图所示:
使用opencv-python读取本地摄像头视频

参考资料

  • LEARN OPENCV in 3 HOURS with Python | Including 3xProjects | Computer Vision
  • Learn-OpenCV-in-3-hours
  • OpenCV tutorial
  • tutorial_py_video_display
  • LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision
  • murtazahassan/Learn-OpenCV-cpp-in-4-Hours
  • OpenCV官网
  • OpenCV-Get Started
  • OpenCV Github仓库源代码
http://www.lryc.cn/news/288785.html

相关文章:

  • webpack如何把dist.js中某个模块js打包成一个全局变量,使得在html引入dist.js后可以直接访问
  • Mysql第一天
  • 用C语言实现贪吃蛇游戏!!!(破万字)
  • uniapp 使用echarts做折线图条形图。
  • 美易平台:诺基亚四季度财报超预期
  • 大数据学习之Flink算子、了解(Source)源算子(基础篇二)
  • 抖去推短视频矩阵系统+实景无人直播系统技术源头开发
  • 【机器学习】一文读懂统计学与机器学习的区别。
  • 燃烧的指针(二)
  • 【工具使用-Everything】everything只能搜到文件夹,无法搜到文件
  • 手写rpc和redis
  • Unity动画桢事件
  • 搭建Redis集群
  • C语言sizeof 不是函数吗?
  • Mybatis的XML配置
  • Oracle报错:ORA-08002: sequence CURRVAL is not yet defined in this session
  • python10-Python的字符串之拼接字符串
  • 华为三层交换机之基本操作
  • IntelliJ IDEA 快捷键大全
  • scrapy的概念作用和工作流程
  • 首页热卖推荐商品显示axios异步请求数据动态渲染实现
  • 【C++11并发】mutex 笔记
  • 洛谷 P5635 【CSGRound1】天下第一
  • 如何通过Navicat远程访问宝塔面板安装的MySQL数据库
  • 【硅谷甄选】导航守卫(进度条,网页标题,路由鉴权)
  • OpenHarmony—TypeScript到ArkTS约束说明
  • 蓝桥杯——每日一练(简单题)
  • css设置不可点击
  • fastapi学习
  • 【代码随想录-数组】长度最小的子数组