利用opencv打开本地摄像头or本地视频、截取摄像头图片

下面是利用opencv打开本地摄像头和本地视频(在注释中) 

import cv2
cap=cv2.VideoCapture(0)#mac系统选择1   如果打开本地视频,就直接将0改为视频的地址就可以了
success=cap.isOpened()#返回的是bool类型,用于查看是否可以打开本地的视频
while success:
    ret,frames=cap.read()
    frame_rgb=cv2.cvtColor(frames,cv2.COLOR_BGR2RGB)#因为有些任务需要rgb形式
    cv2.imshow("windom",frame_rgb)
    if cv2.waitKey(10)&0xFF==ord("q"):
        break
cap.release()
cv2.destroyAllWindows()

 下面是利用opencv将摄像头拍摄图片保存为视频

import cv2
cap=cv2.VideoCapture(0)#mac系统选择1   如果打开本地视频,就直接将0改为视频的地址就可以了
success=cap.isOpened()#返回的是bool类型,用于查看是否可以打开本地的视频
fourcc=cv2.VideoWriter_fourcc(*"XVID")#保存视频的编码格式
out=cv2.VideoWriter("output.avi",fourcc,20.0,(640,480))#20表示频率,(640,480)表示视频的长宽
while success:
    ret,frames=cap.read()
    frame_rgb=cv2.cvtColor(frames,cv2.COLOR_BGR2RGB)#因为有些任务需要rgb形式 当然也可以注释这部分代码
    cv2.imshow("windom",frame_rgb)
    out.write(frame_rgb)
    if cv2.waitKey(10)&0xFF==ord("q"):
        break
cap.release()
cv2.destroyAllWindows()

 下面是利用opencv来保存摄像头图片

import cv2

# 获取本地摄像头
# folder_path 截取图片的存储目录
def get_img_from_camera_local():
    cap = cv2.VideoCapture(0)#0表示打开摄像头
    i = 1
    while True:
        ret, frame = cap.read()#查看能否打开图片
        cv2.imshow("capture", frame)
        print (str(i))
        cv2.imwrite("获取图片/{}.jpg".format(str(i)), frame)  # 存储为图像
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        i += 1
    cap.release()
    cv2.destroyAllWindows()

# 获取网络摄像头,格式:rtsp://username:pwd@ip/
# folder_path 截取图片的存储目录
def get_img_from_camera_net(folder_path):
    cap = cv2.VideoCapture('rtsp://username:pwd@ip/')
    i = 1
    while True:
        ret, frame = cap.read()
        cv2.imshow("capture", frame)
        print (str(i))
        cv2.imwrite(folder_path + str(i) + '.jpg', frame)  # 存储为图像
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        i += 1
    cap.release()
    cv2.destroyAllWindows()

# 测试
if __name__ == '__main__':
    get_img_from_camera_local()

最后祝大家学有所成!

你可能感兴趣的:(opencv学习,python,opencv,摄像头,截频)