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()

原文地址:https://www.cnblogs.com/retacn-yue/p/6194176.html