zoukankan      html  css  js  c++  java
  • OpenCV处理文件、视频和摄像头

    图像的本质(图像可以用数组来表示)

    import numpy as np
    import cv2
    
    img = np.zeros((3, 3), dtype=np.uint8)
    print(img, img.dtype)
    
    img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
    print(img, img.dtype, img.shape)

    图片格式转换(jpg->png)

    image = cv2.imread("img/1.jpg")
    cv2.imwrite("img/1.png",image)

    使用numpy.array访问图像数据

    image = cv2.imread("img/1.jpg")
    image[0:100,0:100] = [255,255,255]
    cv2.imshow("Demo",image)
    cv2.waitKey(0)

    图像的属性

    image = cv2.imread("img/1.jpg")
    print(image.shape)
    print(image.size)
    print(image.dtype)

    shape:图像的宽度、高度和通道数

    size:图像的大小=宽*高*通道数

    dtype:图像像素值的数据类型

    视频类型转换

    import numpy as np
    import cv2
    
    videoCapture = cv2.VideoCapture("img/小杰克的攻击.mp4")
    fps = videoCapture.get(cv2.CAP_PROP_FPS)  # 获取每秒多少帧
    size = (
        int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),  # 获取视频帧宽度
        int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT))  # 获取视频帧高度
    )
    
    videoWriter = cv2.VideoWriter("output.avi", cv2.VideoWriter_fourcc('I', '4', '2', '0'), fps, size)
    success ,frame = videoCapture.read()
    while success:
        videoWriter.write(frame)
        success,frame = videoCapture.read()
  • 相关阅读:
    link和@import区别
    常用的正则表达式
    virtual dom
    git常用命令
    系统管理与进程命令
    Shell 命令
    软件安装命令
    vim 详解
    网络命令
    帮助与用户管理命令
  • 原文地址:https://www.cnblogs.com/zhumengke/p/10186906.html
Copyright © 2011-2022 走看看