python3简单操作opencv3

发布时间:2019-09-27 07:10:22编辑:auto阅读(1587)

    环境:

    Python版本:3.6.2
    opencv版本:opencv-python==3.4.3.18

    安装opencv

    pip install opencv-python

    对图片操作

    import cv2
    
    # 识别图片
    img = cv2.imread('cup.jpg', flags=cv2.IMREAD_LOAD_GDAL)
    
    # 添加对图片的处理内容
    
    # 展示的图片
    cv2.imshow('hello', img)
    
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    其中,flags可以设置为哪些参数:

    IMREAD_UNCHANGED:载入源图像,并添加alpha通道. (常用) 
    IMREAD_GRAYSCALE:始终将图像转换为灰度图再返回(常用选项)   
    IMREAD_COLOR:总是转换图像为3通道(BGR注意顺序)的彩×××像(常用选项)     
    IMREAD_ANYDEPTH:如果设置了这个,且载入的图像深度为16位/32位,那么就返回相应深度的图像,否则,   转换为8位返回(常用) 
    IMREAD_ANYCOLOR:如果设置了,那么就载入任意可能的颜色格式而不进行转换. (常用)
    IMREAD_LOAD_GDAL:If set, use the gdal driver for loading the image.(默认)
    IMREAD_REDUCED_GRAYSCALE_2:如果设置了这个,图像总是转换为单通道灰度图,且尺寸缩减为1/2  
    IMREAD_REDUCED_COLOR_2:图像总是转换为彩色3通道BGR且尺寸缩减为1/2.    
    IMREAD_REDUCED_GRAYSCALE_4:同上,灰度,缩减为1/4     
    IMREAD_REDUCED_COLOR_4:同上,彩色,缩减为1/4    
    IMREAD_REDUCED_GRAYSCALE_8:同上,灰度,缩减为1/8     
    IMREAD_REDUCED_COLOR_8:同上,彩色,缩减为1/8 

    参考:上下求索之OpenCV中imread的学习心得


    对摄像头的操作

    import cv2
    
    def video_demo():
        # 0是代表摄像头编号,只有一个的话默认为0
        capture = cv2.VideoCapture(0)
    
        if capture.isOpened():
            print("摄像头已经连接")
    
            while True:
                # ret:是否成功读取帧,布尔值
                # frame:帧本身的值
                ret, frame = capture.read()
                # print("type-frame:", type(frame))  # numpy.ndarray
                # print("shape-frame:", np.shape(frame))  # (480, 640, 3)
                # print("ret: ", ret)  # True
                # 窗口的名称为"camera",显示摄像头中的内容
                cv2.imshow("camera", frame)
                # cv.imshow("camera", frame[10:300, 50:400])  # 截取摄像头的摄像范围
                # 按“Esc”退出
                if cv2.waitKey(30) & 0xff == 27:
                    capture.release()
                    break
        else:
            print("未检测到摄像头")
    
    video_demo()
    cv2.waitKey()
    cv2.destroyAllWindows()

关键字