OpenCV学习笔记 - 图像&视频加载

文章目录

  • 图像&视频显示
    • 创建和显示窗口
      • 图片加载与保存常见的API
        • cv2.namedWindow(winname,flags)
        • cv2.destroyAllWindow()
        • cv2.resizeWindow(winname,height,width)
        • cv2.imread(path,flags)
        • cv2.imshow(winname,mat)
        • cv2.waitKey(delay)
        • cv2.imwrite(filename,mat)
        • 图片加载与保存代码实例
      • 视频加载与保存常见的API
        • cv2.videoCapture(index)
        • cv2.videoCapture(filename)
        • cap.read()
        • cap.release()
        • 视频加载代码实例

图像&视频显示

创建和显示窗口

图片加载与保存常见的API

cv2.namedWindow(winname,flags)

  • 功能:用来创建指定名称的窗口
  • 参数说明
    • winname: 窗口命名(数据类型为string)
    • flags: 选择窗口显示的模式(数据类型为int,常用的两个 cv2.WINDOW_NORMAL:可以自根据需要设置展示窗口大小; cv2.WINDOW_AUTOSIZE:根据加载的图片/视频自动调节窗口大小)

cv2.destroyAllWindow()

  • 功能:用来释放所有窗口所占的系统资源

cv2.resizeWindow(winname,height,width)

  • 功能:将窗口展示的尺寸进行调整(注意:在创建窗口的时候flags的参数必须为cv2.WINDOW_NORMAL
  • 参数说明
    • winname:窗口的名字(数据类型string
    • height:需要调整窗口的高度(数据类型int
    • width:需要调整窗口的宽度(数据类型int

cv2.imread(path,flags)

  • 功能:将本地的图片加载
  • 参数说明
    • path:加载图片的本地路径(数据类型string
    • flags:用来控制读取数据所要求的格式(数据类型int),常见的标记值如表所示
      在这里插入图片描述

cv2.imshow(winname,mat)

  • 功能:显示图像
  • 参数说明
    • winname: 窗口的名称(数据类型string
    • mat:要显示的图像(数据类型在python中就是numpy数据格式)

cv2.waitKey(delay)

  • 功能:设置窗口显示的时间,(注意:delay=0为时间无限长)
  • 参数说明
    • delay: 设置窗口显示的时间,单位为毫秒(数据类型int

cv2.imwrite(filename,mat)

  • 功能:保存图像
  • 参数说明
    • filename: 图像数据保存的路径(数据类型string
    • mat:要保存的图像(数据类型在python中就是numpy数据格式)

图片加载与保存代码实例

# 导入opencv第三方库
import cv2

# 创建窗口

## 选择自动条件窗口大小
# cv2.namedWindow('newWindow',cv2.WINDOW_AUTOSIZE)

## 选择手动条件窗口大小
cv2.namedWindow('newWindow',cv2.WINDOW_NORMAL)
cv2.resizeWindow('newWindow',480,480)

# 加载图片
img = cv2.imread('./img/TSU1.jpg')


# 展示加载的图片
while True:
    cv2.imshow('newWindow',img)

    # 设置图片加载的时间
    key = cv2.waitKey(0)

    # 查看键盘事件,如果键盘按了q退出循环
    if key & 0xFF == ord('q'):
        break

    # 查看键盘事件,如果键盘按了w,将原来的图片保存
    elif key & 0xFF == ord('w'):
        cv2.imwrite('./img/PKU.jpg',img)
    
    else:
        print('你按的是什么玩意:',key)


# 销毁窗口所占的系统资源
cv2.destroyAllWindows()

视频加载与保存常见的API

cv2.videoCapture(index)

  • 功能:加载视频,选择本地摄像机获取视频
  • 参数说明
    • index: 本地计算机摄像机设备号(数据类型int,通常从0开始)

cv2.videoCapture(filename)

  • 功能:加载视频,选择本地视频文件
  • 参数说明
    • filename: 本地视频文件(数据类型string

cap.read()

  • 功能:读取视频帧,(说明:cap = cv2.videoCapture()

cap.release()

  • 功能:释放加载视频的系统资源

视频加载代码实例

# 导入第三方库
import cv2

# 创建窗口,选择手动调节视频尺寸
cv2.namedWindow('videoCapture',cv2.WINDOW_NORMAL)
cv2.resizeWindow('videoCapture',640,480)

# 读取视频
## 读取本地摄像头的数据
#cap = cv2.VideoCapture(0)

## 读取本地视频文件数据
cap = cv2.VideoCapture('./video/wedding.mp4')

while True:
    ret,frame = cap.read()

    # 判断视频是否读取成功
    if ret == True:
        # 展示数据帧
        cv2.imshow('videoCapture',frame)
        
        # 注意使用cv2.WINDOW_NORMAL参数的时候需要再次设置显示窗口的大小
        cv2.resizeWindow('videoCapture',640,480)
        
        # 判断键盘事件
        key = cv2.waitKey(40)
        if key & 0xFF == ord('q'):
            break

    else:
        break

# 注意要释放相应的系统资源
cap.release()
cv2.destroyAllWindows()

你可能感兴趣的:(#,图像处理与OpenCV,opencv,学习,音视频)