• 1.opencv基础


    1.opencv基础

    In [1]:
    import cv2 as cv 
    
    #读出video
    #打开指定路径下的视频文件:cap =cv2.VideoCapture(path)
    #读取每一帧:flag,frame = cap.read(),打开视频并读取每一帧图片,将视频转换为4维的矩阵
    def video_demo():
        cap=cv.VideoCapture(0)
        while(1):
            # get a frame
            ret, frame = cap.read()#frame是每一针
            #视频左右镜像打开,参数是1
            frame=cv.flip(frame,1)
            # show a frame
            cv.imshow("capture", frame)
            cv.waitKey(50)
           # c=cv.waitKey(10)#延时50ms,等待键盘输入返回对应的ASCII
            #if c==27:    
            #其中27是ESC的意思,ASCII十进制的表示方法
            if  cv.waitKey(20)&0xFF == ord('q'):
                break
            #如果在输入q后仍然无法中断摄像头,把cv.waitKey时间延长一点即可
            #0xFF == ord('q')是键盘接收命令q时退出,
            #0xFF位掩码是d对应十进制255,二进制1111 1111,只有后8位实际有效,为避免产干扰,通过 ‘与’ 操作将其余位置0。
            #ord('q'):返回q对应的Unicode码对应的值,q对应的Unicode数值为113。ord()是返回字符对应的整数        
    #查看图片信息
    def get_image_info(image):
        print(type(image))
        print(image.shape)
        print(image.size)
        print(image.dtype)
    
        
        
    print("----hello----")
    #读取图片
    src=cv.imread("aaa.png",cv.WINDOW_AUTOSIZE)
    #窗口名字
    cv.namedWindow("picture1",0)
    #显示图片窗口
    #如果名字是中文则文件上要加上   # -*- coding=GBK -*-
    #  如果不加会报错,如果加的是    # -*- coding: utf-8 -*-,虽然不会报错,但会是乱码
    cv.imshow("picture1",src)
    # 创建窗口,其实不写这行代码也可以show出来。单位mshttp://localhost:8889/notebooks/%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/OPENCV/1.opencv%E5%9F%BA%E7%A1%80.ipynb#
    cv.waitKey(1000)#参数为0,就是窗口一直显示
    #关闭窗口
    cv.destroyAllWindows()#删除建立的全部窗口,释放资源
    get_image_info(src)
    #保存图片
    cv.imwrite("./test1.png",src)
    #显示灰度图
    gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)
    cv.namedWindow("picture2",0)
    cv.imshow("picture2",gray)
    cv.waitKey(5000)
    cv.destroyAllWindows()
    
     
    ----hello----
    <class 'numpy.ndarray'>
    (96, 89, 3)
    25632
    uint8
    
    In [2]:
    video_demo()
    cv.waitKey(1)
    #如果没下面的指令也会造成,在获取键盘指令后,窗口无法完全关闭
    cv.destroyAllWindows()#删除建立的全部窗口,释放资源
    
  • 相关阅读:
    css+js实现的一个导航栏
    各类插件的网页库
    vue构建项目全过程
    手把手教你使用Git
    创建git库
    VUE.JS的安装
    reset.css 初始化
    分布式事务方案
    线程池的参数
    每秒上千订单场景下,如何对分布式锁的并发能力进行优化
  • 原文地址:https://www.cnblogs.com/AI-robort/p/13377798.html
Copyright © 2020-2023  润新知