Python-Opencv图像视频的读取及相关方法
import cv2 as cv
def video_demo():
# cv.VideoCapture()参数0代表摄像头的编号,
# 当参数为0时表示打开笔记本的内置摄像头,如果有多个摄像头时,输入对应编号
# 当要打开视频是则输入视频路径即可
caputure = cv.VideoCapture(0)
while Ture:
# 通过 .read()方法对视频的每一帧进行读取,返回ret, frame
# 其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。
# frame就是每一帧的图像,是个三维矩阵。
ret, frame = capture.read()
print(ret)
# cv.flip()方法是对图像进行翻转
# flip(frame, flipCode[, dst]) 其中的frame表示要翻转的图像,
# flipCode 为翻转参数 有 -1 0 1
# -1:水平翻转 0:垂直翻转 1:水平垂直翻转
frame = cv.flip(frame, 1)
# 通过cv2.imshow("video", frame)将每一帧图像显示出来,第一个参数为窗口,第二个参数为图像
cv.imshow("video", frame)
# waitKey()方法本身表示等待键盘输入
# waitKey(a)相当于延时a毫秒再到下一帧
# waitKey()--这个函数是在一个给定的时间内(单位ms)等待用户按键触发;
# 如果用户没有按下键,则接续等待(循环)
# 如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件,说明就卡这在了这一帧
c = cv.waitKey(50)
# 等待用户触发事件,等待时间为50ms,
# c得到的是键盘输入的ASCII码,esc键对应的ASCII码是27,即当按esc键是if条件句成立
if c == 27:
break
video_demo()
# 读取图片
def get_image_info(image):
# 返回图片的类型——> ndarray
print(type(image))
# .shape 返回图片的(高度,宽度,通道数)
print(image.shape)
# .size 返回图片的数据大小
print(image.size)
print(image.dtype)
# 每一个像素的高度,宽度,通道数
pixel_data = np.array(image)
print(pixel_data)
print(pixel_data.shape)
# 通过cv.imread("地址")来读取图片
src = cv.imread("example.png")
# 创建一个窗口
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
# cv.imshow("input image", src) 显示图像 第一个参数为窗口,第二个参数为要显示的图像
cv.imshow("input image", src)
get_image_info(src)
gray = cv.cvtColor(src, cv.COLOR_BGR2BGRA)
# cv.imwrite("result1.png", gray) 写入图像 第一个参数为要写入的名称,第二个参数为写入的图像
cv.imwrite("result1.png", gray)
# cv.waitKey(0) 则表示程序会无限制的等待用户的按键事件,说明就卡这在了这一帧
cv.waitKey(0)
# 关闭所有窗口
cv.destroyAllWindows()
初学Opencv,如有错误地方会改进地方,真诚地邀请您提出来,谢谢!
本文结束…