python3简单操作opencv3

环境:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章