OpenCV+Python——图像加载与保存

从今天开始将陆续学习贾志刚老师的网课《Python+OpenCV3.3图像视频处理教程》,为了将自己的学习笔记记录下来避免之后遗忘(自己忘性实在太大),也相当于对自己的一个督促吧,决定培养自己写博客的习惯。

接下来是第一课——图像加载与保存

相关涉及到的代码如下所示:

import cv2 as cv
import numpy as np # numpy是python中一个较强大的库,涉及数组的运算


def vedio_demo(): # 提取视频
  capture = cv.VedioCapture(0) # 捕获摄像头或者调用视频文件,0表示某一摄像头编号,倘若有多个摄像头,则从0开始往大编号
  while(True): # 循环显示每帧图片,表现就是调取了一个视频
    ret, frame = capture.read() # ret是bool值,表示此次函数返回值是成功或者失败,frame存放视频某一帧,注意这里的帧是按照视频的帧顺序取出,而不是按照时间对应取出
    frame = cv.flip(frame, 1) # 将帧水平翻转,1表示水平翻转,0表示垂直翻转,-1表示水平垂直翻转
    cv.imshow("Video", frame)
    c = cv.waitKey(10) # 此函数表示等待键盘操作,括号中的数字表示等待的时间,比如10是10ms,若在该时间段内有键盘操作则退出画面,因此括号内的数字越小表示等待时间越小则画面延迟越小,若为0则表示持续等待,该函数返回值为键的容器(即存放敲下的键)。
    if c == 27: # 27是Esc的键值
      break # 退出循环


def get_image_info(image): # 显示图像相关信息
  print(type(image)) # 显示图像类型
  print(image.shape) # 显示图像的长、宽、高,返回值(length, width, number of channels)
  print(image.size) # 显示图像大小,即共有多少个数字表示=length*width*number of channels)
  print(image.dtype) # 显示图像像素由多少位数据表示
  pixel_data = np.array(image) # 提取图像表示数据并以n维数组的方式存储在pixel_data里
  print(pixel_data)


src = cv.imread("/home/yangx/pictures/classroom.jpg") # 读取图像
cv.namedWindow("Input Image", cv.WINDOW_NORMAL) # 创建一个窗口,通过窗口可以改变大小(这是我认为需要创建窗口的原因),WINDOW_NORMAL表示可改变大小,WINDOW_AUTOSIZE表示根据图片自定义大小不可改动
cv.imshow("Input Image", src)
get_image_info(src)
gray = cv.cvtColor(src, cv.BGR2GRAY) # 表示将图像转化为灰度图像
cv.imwrite("/home/yangx/classroom.png", gray) # 将图像写入某个文件,可改变图像保存格式
vedio_demo()
cv.waitKey(0)

cv.destroyAllWindows() # 该函数表示需等待所有在该文件中创建的窗口都关闭

注释都写在上面了(本人文笔不好,若解释不清烦请见谅),因为格式问题还有人工手打可能复制粘贴会有问题,这里是下面代码的部分结果。

OpenCV+Python——图像加载与保存_第1张图片

你可能感兴趣的:(图像视频处理教程-笔记)