zoukankan      html  css  js  c++  java
  • opencv-学习笔记(1)常用函数和方法。

                        opencv-学习笔记(1)常用函数和方法。


     

    cv2.imread(filename,falg)

    filename是文件名字

    flag是读入的方式

    cv2.MREAD_UNCHANGED :不进行转化,比如保存为了16位的图片,读取出来仍然为16位。

    cv2.IMREAD_GRAYSCALE :进行转化为灰度图,比如保存为了16位的图片,读取出来为8位,类型为CV_8UC1。

    cv2.IMREAD_COLOR :进行转化为三通道图像。

    cv2.IMREAD_ANYDEPTH :如果图像深度为16位则读出为16位,32位则读出为32位,其余的转化为8位。

    实际应用中,falg=0就是灰度图像,falg=1就是三通道图。这种方便

     

    import cv2
    import numpy as np
    img=cv2.imread('1.jpg',0)//读入灰度图像
    cv2.imshow('image',img)
    cv2.waitKey(0)

    看看输出

    flag=0                                flag=1

               


     

    cv2.imshow(‘窗口名字’,图像对象)

    但是光光这个不够

    还要下面加一句cv2.waitKey(0)

    这个函数顾名思义就是等待键盘输入,0就是不停等待,5000就是5s内,函数会返回按下的ascii码


     

    cv2. destroyAllWindows(“窗口名”)

    可以关闭任何窗口

    不加参数则是关闭所有窗口


     

     cv2.namedWindow('新建窗口名',flag)

    创建一个窗口名叫image

    flag=cv2.WINDOW_AUTOSIZE时候就自动适应大小这是默认的

    flag=cv2.WINDOW_NORMAL就是图片自适应窗口大小

    # -*- coding: utf-8 -*-
    """
    Created on Thu May 31 17:32:11 2018
    
    @author: Administrator
    """
    
    import cv2
    import numpy as np
    cv2.namedWindow('image',cv2.WINDOW_NORMAL)
    img=cv2.imread('1.jpg',1)
    cv2.imshow('image',img)
    cv2.waitKey(0)

    现在就可以图片自适应窗口了


     

    cv2.imwrite('图像名字',图像对象)

    用来保存图片,效果如下


    cv.waitKey()

    这个函数是有返回值的,我们来看看则么用

    import cv2
    import numpy as np
    
    img=cv2.imread('1.jpg',1)
    cv2.imshow('image',img)
    k=cv2.waitKey(0)&0xFF#64位系统必须添加
    if k==27:        #ESC退出不保存
        cv2.destroyAllWindows()
    elif k==ord('s'):    #s键保存
        cv2.imwrite('fuck2.jpg',img)
        cv2.destroyAllWindows()            

    matplotlib

    这个py库的使用是

    from matplotlib import pyplot as plt

    import cv2
    import numpy as np
    from matplotlib import pyplot as plt
    
    img=cv2.imread('1.jpg',1)
    cv2.imshow('image',img)
    cv2.waitKey(0)
    plt.imshow(img,cmap='gray',interpolation='bicubic')
    plt.xticks([]),plt.yticks([])
    plt.show()

    这个代码分别用opencv和matplotlib显示了图像可以看出来都相反了?

    因为

     

     

     


     

     opencv用摄像头捕捉视频

    # -*- coding: utf-8 -*-
    """
    Created on Thu May 31 17:32:11 2018
    
    @author: Administrator
    """
    
    import numpy as np
    import cv2
    
    #打开摄像头
    cap=cv2.VideoCapture(0)
    
    while(True):
        #一帧一帧捕获视频
        ret,frame=cap.read()
        cv2.imshow("frame",frame)
        #q键退出
        if cv2.waitKey(1)&0xFF==ord('q'):
            break;
    cap.release()
    cv2.destroyAllWindows()

     

    效果如下

     

     

  • 相关阅读:
    面试题汇总--1
    行内元素与块级元素
    前端面试题整理---JS基础
    springmvc处理一个请求的全流程
    反射+动态代理+类加载+JVM
    json注解及序列化
    加密
    Thread setUncaughtExceptionHandler
    RunTime.getRunTime().addShutdownHook 添加钩子
    MySQL日志
  • 原文地址:https://www.cnblogs.com/DJC-BLOG/p/9119273.html
Copyright © 2011-2022 走看看