CV2模块学习笔记

cv2模块学习笔记

VedioCapture()

cv2模块打开视频函数,参数为路径下视频则打开视频;参数为0则打开摄像头。html

cap = cv2.VedioCapture(0)     #打开系统内置摄像头
cap = cv2.VedioCapture("../Vedio/***.avi")     #打开Vedio目录下的视频文件

imread()

imread()函数,函数原型:web

ret,img = cv2.imread(filename [,flags])

函数第一个参数为图像文件路径及名称,第二个参数为图像处理的标志位,通知程序以何种方式加载图片,默认cv2.IMREAD_COLOR,加载一张彩色图片。
  cv2.IMREAD_COLOR=1:读入一副彩色图像,将图像转化为三通道BGR彩色图像。图像的透明度会被忽略,这是默认参数。
  cv2.IMREAD_GRAYSCALE=0::将加载的图像转换为单通道灰度图。
  cv2.IMREAD_UNCHANGED = -1:已经废除,再也不使用
  cv2.IMREAD_ANYDEPTH=2:若载入图像深度为16位或32为就返回其对应深度,不然将图像转换为8位图像
  cv2.IMREAD_ANYCOLOR=4:保持图像原格式,能够读取任意可能的彩色格式
  cv2.IMREAD_LOAD_GDAL=8:使用文件格式驱动加载图像,在现阶段用处很少。
函数包含两个返回值,ret和img,ret为bool类型,表示是否正常打开图片,img为图片的三维矩阵。svg

ret,img = cv2.imread("../Rictures/***.jpg")      #打开Rictures目录下的图片文件

按帧打开视频内图像使用cap.read()函数,返回值与同上。函数

cap = cv2.VedioCapture("../Vedoio/party.avi")    #打开payty.avi视频
ret,img = cap.read()     #按帧打开视频文件

imshow()

imshow()为图像显示函数,接受两个参数,参数一为图像显示窗体的名称,参数二为图像内容矩阵。学习

ret,img = cv2.imread("../Pictures/party.jpg")
cv2.imshow = ("Pictures", img)

imwirte()

imwrite()为图像保存函数,保存如今已打开的图像文件。函数原型:.net

cv2.imwrite(filename,img,params = None)

filename为要保存的文件名,img为要保存的图像矩阵,params为缺省的参数。
列举下使用过程踩到的坑:(注:全部指定目录下均存在image文件夹)code

  1. cv2.imwrite("~/Desktop/image/"+str(index)+".jpg", img) 保存不成功
cap = cv2.VedioCapture("../Vedio/party.avi")
index = 1
while Ture:
    ret,img = cap.read()
    imshow("Pictures", img)
    imwrite("~/Desktop/image/"+str(index)+".jpg", img)
    index +=1
  1. cv2.imwrite("/image/"+str(index)+".jpg", img) 保存不成功
cap = cv2.VedioCapture("../Vedio/party.avi")
index = 1
while Ture:
    ret,img = cap.read()
    imshow("Pictures", img)
    imwrite("/image/"+str(index)+".jpg", img)
    index +=1
  1. cv2.imwrite("./iamge/"+str(index)+".jpg") 保存成功
cap = cv2.VedioCapture("../Vedio/party.avi")
index = 1
while Ture:
    ret,img = cap.read()
    imshow("Pictures", img)
    imwrite("./image/"+str(index)+".jpg", img)
    index +=1
  1. 利用os.chdir()改变工做路径再保存,保存成功
cap = cv2.VedioCapture("../Vedio/party.avi")
index = 1
os.chdir("~/Desktop/image")
while Ture:
    ret,img = cap.read()
    imshow("Pictures", img)
    imwrite(str(index)+".jpg", img)   #直接保存在当前目录下
    index +=1

参考大神博客:
大奥特曼打小怪兽
yuanlulu视频