由于比赛需要,又换成了python语言,但是相关函数和C++是相同的,相比与C++,Python让我觉得方便又最不适应的是Python会自动识别类型而需要自己定义,感觉缺少了控制的乐趣
读取视频
读取视频本质上和读取图像相同,都需要打开文件再输出,其中打开可以从摄像头和本地文件,核心是VideoCapture类的使用
1.打开摄像头:
创建一个VideoCapture的类,当参数为0时调用摄像头
capture = cv.VideoCapture(0)
1.2.打开文件
capture = cv.VideoCapture("文件的绝对路径")
2.调用ret,frame = capture.read()函数来将函数进行输出,其中
capture.read()函数是返回值为bool型的函数,该函数时按帧读取的,如果读取成功ret则会为1,当读到文件末尾则会变为0
ret, frame = capture.read("文件的绝对路径或摄像头")
3.调用imshow函数将所获得的图像输出到窗口中
cv.imshow("Video", frame)
保存图像
保存图像需要使用函数
cv.imwrite("保存图像的绝对路径",读取到的图像)
完整代码
import cv2 as cv
import numpy as np
def videoDemo():
capture = cv.VideoCapture(0)
while (True):
ret, frame = capture.read(0)
frame = cv.flip(frame, 1)
cv.imshow("Video", frame)
c = cv.waitKey(50)
if c == 27:
break
def get_image_info(image):
print(type(image))
print(image.shape)
print(image.size)
print(image.dtype)
src = cv.imread("D:/Coding/pit.jpg")
cv.namedWindow("Input", cv.WINDOW_FREERATIO)
cv.imshow("Input", src)
get_image_info(src)
cv.imwrite("D:/Coding/pit.png",src)
cv.waitKey(0)
cv.destroyAllWindows()