open cv

opencv2
        opencv库包含许多计算机视觉的相关库文件,可以使用调用函数来实现计算机视觉的相应功能。大部分的时间都是用来实现对图片,视频的操作,当然在最近的一个news中,其实也不算新闻了,,介绍“刷脸签到应用"( https://www.leiphone.com/news/201710/Niuqjv1wsqvIc46f.html)最后我也尝试性的实现这个System!不过在轻易实现之前,We 需要做跟多的基础工作,Knowledge 是必要的
        
    1.1 对图片的操作

# -*- coding: cp936 -*-
import cv2
import numpy as np
from matplotlib import pyplot as plt
"this class is used for testing the opencv2 about operating the picture"
class testclass(object):
    "the first test:how to open/write a picture"
    def __init__(self):
        pass
    def dopicture(self,path):
        self.path = path
        img = cv2.imread(self.path,0) #0是一个参数:cv2.IMREAD_COLOR 灰度值
        cv2.namedWindow('picture',cv2.WINDOW_NORMAL) #命名一个图片的窗口
        cv2.imshow('picture',img)  #展示图片
        cv2.imwrite('D:/spicture.png',img)
        cv2.waitKey(0)
        cv2.destroyAllWindows()   #摧毁所有打开的窗口
        print "完成对图片的读取与写入功能"
    "the second test :how to plot a picture by using matplotlib"
    def plotpicture(self,path):
        self.path = path
        img = cv2.imread(self.path,0)
        plt.imshow(img,cmap='gray',interpolation='bicubic')
        plt.xticks([]),plt.yticks([])
        plt.show
def test():
    path = str(raw_input("请输入图片路径:>\n"))
    pic = testclass()
    pic.plotpicture(path)
    print "test is effective!"
test()


    1.2 对视频的处理
        实际上在处理视频的应用中,常会用到两个functions:一个cv2.VideoCapture(),一个cv2.VideoWrite().
import numpy as np
import cv2
cap = cv2.VideoCapture('D:/test.mp4')   #display a video
                  #创建一个Videocapture对象,后面的函数主要用来就是操作这个对象
while(True):
    ret ,frame = cap.read()
    ret = cap.set(3,320)
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destoryAllWindows()
        知道如何读取视频之后,现在该思考怎么把视频存放在相应的文件夹,主要是Get out输出对象的操作,很大程度上与cap相似
# -*- coding: cp936 -*-
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
fourcc = cv2.cv.CV_FOURCC(*'MJPG')
        #there is a little problem!
        #python3.0+版本采用语句:fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('D:/output.avi',fourcc,20.0,(640,480))
while(cap.isOpened()):
    ret ,frame = cap.read()
    ret = cap.set(3,320)
    if(ret == True):
        frame = cv2.flip(frame,0)
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
cap.release()
out.release()
cv2.destroyAllWindows()
前面两个小点只是花生米,开始才刚刚开始,对于一个特征物体,我们更需要的是了解这个特征物的feature,顺带的去get这个feature detection,顺带去添加一些描述description,特征是个什么东东如官方API中一句话“   we may find it difficult to express it in words, but we know what are they
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值