• opencv_python学习笔记三


    Opencv中的GUI特性

    使用matplotlib绘制图像

    Matplotlibpython中的一个绘制库

    使用pycharm编写测试程序

    # -*- coding: utf-8 -*-
    # @Time    : 2016/11/10 14:45
    # @Author  : Retacn
    # @Site    :
    # @File    : matplotib.py
    # @Software: PyCharm

    import numpy as np
    import cv2
    from matplotlib import pyplot as plt

    #读取图像
    img=cv2.imread('test.jpg',0)
    plt.imshow(img,cmap='gray',interpolation='bicubic')
    plt.xticks([]),plt.yticks([])
    plt.show()

    视频

    读取视频文件,显示视频,保存视频文件

    从摄像头获取并显示视频

    所用到的函数

    Cv2.VideoCapture()

    Cv2.VdeoWrite()

    用摄像头捕获视频

    # -*- coding: utf-8 -*-
    # @Time    : 2016/11/10 14:58
    # @Author  : Retacn
    # @Site    :
    # @File    : videoCapture.py
    # @Software: PyCharm

    # 从摄像头捕捉视频

    import numpy as np
    import cv2

    #使用默认的内置设像头
    cap = cv2.VideoCapture(0)

    while (True):
        #检查是否初始化成功,不成功就调用cap.open()
        #cap.isOpened()

        # 一帧一帧的捕获图像
        #ret返回布尔值,检查帧是否读取正确
        
    ret, frame = cap.read()

        #读取视频的一些信息参数,
        
    for i in range(0, 18 ,1):
            print(cap.get(i))

        # 修改一帧数据
        
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)


        # 显示返回的一帧图像
        
    cv2.imshow('frame', gray)
        #按下q键退出程序
        
    if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    # 所有操作完成,后释放资源
    cap.release()
    cv2.destroyAllWindows()

    可以看到控制台输出的视频信息

    -1.0

    -1.0

    -1.0

    640.0

    480.0

    0.0

    844715353.0

    -1.0

    -1.0

    -1.0

    0.0

    50.0

    50.0

    0.0

    64.0

    -6.0

    -1.0

    17.0

    从文件中播放视频

    直接修改上面的程序

    将cap = cv2.VideoCapture(0)改为文件名

    #播放视频文件
    cap = cv2.VideoCapture('output.avi')

    将摄像头捕获文件保存为视频文件

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2016/11/10 15:57
    # @Author  : Retacn
    # @Site    :
    # @File    : fileVideoCapture.py
    # @Software: PyCharm

    #保存视频文件
    import numpy as np
    import cv2

    #捕获视频信息
    cap=cv2.VideoCapture(0)
    #设置视频的编码格式
    #DIVX  XVID  MJPG   X264  WMV1  WMV2
    #格式:
    #cv2.VideoWriter_fourcc('M','J','P','G')
    #或是cv2.VideoWriter_fourcc(*'MJPG')
    fourcc=cv2.VideoWriter_fourcc(*'XVID')
    #将捕获的信息保存为视频文件
    #沿水平方向旋转每一帧
    out=cv2.VideoWriter('output.avi',fourcc,20.0,(640,480))

    while(cap.isOpened()):
        ret,frame=cap.read()
        if ret==True:
            frame=cv2.flip(frame,0)

            out.write(frame)

            #显示一帧
            
    cv2.imshow('frame',frame)

            #按下q键退出
            
    if cv2.waitKey(1)& 0xFF ==ord('q'):
                break
        else
    :
            break

    #释放资源
    cap.release()
    out.release()
    cv2.destroyAllWindows()

  • 相关阅读:
    强迫症
    bzoj1758 [Wc2010]重建计划
    bzoj1070 [SCOI2007]修车
    bzoj3675 [Apio2014]序列分割
    bzoj1010 [HNOI2008]玩具装箱toy
    bzoj3697 采药人的路径
    bzoj2152 聪聪可可
    bzoj2599 [IOI2011]Race
    Ubuntu 18.04 LTS 下 GTK3 安装与编译
    启动或重启 dnsmasq 提示端口 53 被占用的解决方案
  • 原文地址:https://www.cnblogs.com/retacn-yue/p/6194176.html
Copyright © 2020-2023  润新知