**

Opencv 学习笔记.1

**笔记是个好东西~记着记着就发现问题了/捂脸(顺便也磨磨性子外加练习用键盘啦)

import cv2 as cv
src = cv.imread("D:/sourses/picture/001.jpg")
cv.namedWindow("image",cv.WINDOW_AUTOSIZE)
cv.imshow("image",src)
cv.waitKey(0)
cv.destroyAllWindows()
  • 图片名 = cv2.imread("<图片地址>",x)
    读取图片 BGR模式

    x>0 删除alpha通道信息(透明度)
    x=1=cv2.IMREAD_COLOR=参数省略--------彩色
    x=0=cv2.GRAYSCALE-------灰度图像
    x<0返回带alph通道的原图
    图片地址在电脑中表示包含\,调用函数时不能直接粘贴,需改为/或再加一个\,否则报错
  • cv2.namedWindow(<窗口名>,x)
    打开一个窗口并命名

    x=cv2.WINDOW_AUTOSIZE-----默认大小,不能改动
    x=cv2.WINDOW_NORMAL
    或cv2.WINDOW_FREERATIO1-----可以改动窗口大小
  • cv2.imshow(<窗口名>,读取到的图像变量名)
    打开图片并命名窗口

    窗口自动调整为图像大小
  • cv2.waitKey(x) 键盘绑定函数
    时间尺度为毫秒级,在特定的几毫秒内等待键盘输入
  • cv2.destroyAllWindows()
    关闭全部窗口
  • cv.destroyWindow(<>)
    关闭特定窗口
import cv2 as cv
import numpy as np

def video():
    capture=cv.VideoCapture(0)
    while(True):
        retu,frame = capture.read()
        frame=cv.flip(frame,1)
        cv.imshow("vid",frame)
        c=cv.waitKey(50)
        if c==27:
            break


def get_image_info(image):
    print(type(image))
    print(image.shape)
    print(image.size)
    print(image.dtype)
    pix=np.array(image)
    print(pix)


print("---------Hello Python---------")
src = cv.imread("D:/sourses/picture/001.jpg",cv.IMREAD_COLOR)
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
gra = cv.cvtColor(src,cv.COLOR_BGR2GRAY)
cv.imshow("input image",gra)
get_image_info(src)
cv.waitKey(0)
cv.destroyAllWindows()
  • cv2.VideoCapture(x)
    x表示摄像头设备索引号或视频文件2
    x为0时表示笔记本内置摄像头
    调用时可能不能成功初始化摄像头,此时代码报错
    -----检查是否初始化:.isOpened()
    返回True时成功,否则需用:.open()
    *获取视频参数信息:.get(propId) 其中,propId为0~18间的整数,每一个数代表视频的一个属性,例如:capture.get(3)和capture.get(4)分别用于获取每一帧的宽和高,默认为640和480
    *更改视频参数属性:.set(propId,value)

.read()
返回布尔值,若帧读取正确返回True
可用于检查视频文件是否到了结尾

  • cv.flip(frame,1)
    左右/水平 镜像翻转
    cv.flip(frame,0) 垂直镜像
    cv.flip(frame,-1) 对角镜像
  • type(image)
    返回图像数据类型,此时返回 <class ‘numpy.ndarray’>
  • image.shape
    返回图像(高,宽,通道数目)
  • image.size
    返回图像大小,即高x宽x通道数
  • image.dtype
    返回图像字节位数
  • np.array(image)
    返回图像所有像素数据

*Esc(ASC2)=27


  1. ratio n.比例,比率,系数;vt.求出比值,除,使…成比例,将(相片)按比例放缩 ↩︎
  2. 从文件中播放视频:将设备索引号改为视频文件的名字,播放每一帧时使用 cv2.waitKey() 设置适当持续时间,设置越高播放越慢,通常25毫秒 ↩︎