OpenCV 学习笔记(1)

一、图像入门

cv.nameWindow(winname,flags)
winname:窗口的名称,用于进行窗口的标识,每个窗口具有唯一的名称
flags:可选参数,用于指定窗口的行为
    cv.WINDOW_NORMAL:允许调整窗口的大小
    cv.WINDOW_AUTOSIZE:根据图像自动调整窗口的大小

cv.imwrite(imagename,img)
图像会以png格式保存在工作目录中

cv.waitKey(t)
    是一个键盘绑定方式,等待键盘输入,参数为等待的时间,单位为毫秒
    常见的用法是传入0表示无线地等待键盘输入
    key=cv.waitKey(0)
        如果有按键则返回该键的ASCII码值
        如果没有按键则返回-1
        ord(char):接受一个字符作为参数并返回对应的ASCII码值
        chr(ascii):接受一个代表ASCII码的整数作为参数并返回对应的字符


plt.imshow(img,cmap,aspect,interpolation)
    img:要显示的图像,可以是一个二维/三维数组
    cmap:可选参数,用于指定颜色的映射,指定如何将数组的值映射到颜色
        cmap='gray':灰度图
        cmap='hot':热度图
    aspect:可选参数,用于指定图像的长宽比,默认情况下会根据图像的尺寸自动调整比例
    interpolation:可选参数,用于指定图像的插值方法

cap=cv.VideoCapture(source)
    source可以是以下几种类型
    (1)整数:表示连接到计算机的摄像头的索引号码(通常0表示默认设备)
    (2)字符串:表示视频文件的路径
    (3)URL:表示IP的摄像头URL
    可以将cap对象看成一个视频捕获器

cap.isOpened()
    返回布尔值用于判断视频源是否成功打开
cap.open()
    打开视频源

read()
    用于读取视频源中的下一帧
    return ret,frame
    ret:表示是否成功读取到帧
    frame:帧对象包含了当前帧的图像数据(帧是一个图像)

gray=cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
    将图像从一个颜色空间转换到另一个颜色空间
    cv.COLOR_BGR2GRAY
    BGR:blue,green,red

cap.release()
    释放视频资源,不再占用相机/文件之类的系统资源

FourCC(四字符编码)是一个由四个字节(通常是ASCII)组成的序列,用于唯一标识数据格式   

fourcc=cv.VideoWriter_fourcc(*'XVID')
    创建了一个使用Xvid编码器的视频编码器fourcc
    视频编码器:将视频的原始图像帧数据进行压缩和编码,以生成可存储和传输的视频文件。它负责将连续的图像帧转换为视频压缩格式,以减小文件大小并提高传输效率

out=cv.VideoWriter(videoname,coder,frame_rate,(像素高,像素宽))
    VideoWriter的对象可以看成一个视频生成器
    帧率(frame rate):每秒播放的帧数
    分辨率:用于描述图像/视频的清晰度和细节水平,表示图像/视频水平和垂直方向上像素的数量
    分辨率=视频宽度(像素宽)*视频高度(像素高)

out.write(frame)

cv.flip(frame,0)
用于翻转图像/视频帧的函数
    frame:要翻转的图像帧
    num:指定反转方式的标志
        0:垂直翻转
        1:水平翻转
        -1:水平垂直同时翻转
        cv.ROTATE_90_COUNTERLOCKWISE:逆时针90度
        cv.ROTATE_90_LOCKWISE:顺时针90度


绘图
np.zeros(tuple):用于创建一个指定大小的数组,并将其填充为指定的值
    tuple:元组用于指定数组的形状
  
cv.line(img,pt1,pt2,color,thickness,lineType,shift) 
    img:要于其上进行绘制的图像
    p1,p2为线段的起终点
    color:用BGR颜色表示
        BGR是一种常见的颜色编码方式

    thickness:宽度,以像素为单位,默认值为1
    lineType:线条的类型
    shift:像素坐标的小数数位,默认值为0

cv.rectangle()
    p1,p2为矩形的左上角和右下角

cv.circle(img,center,radius,BGRcolor,thickness,lineType,shift)
    thickness:圆的边框线条宽度
        正值:实心圆
        负值:表示圆框线条宽度

cv.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness, lineType, shift)
    axes:(a,b)椭圆的长轴和短轴宽度
    angle:椭圆的旋转角度
    startAngle:椭圆的起始角度

cv.polylines(img, pts, isClosed, color, thickness, lineType, shift)
    pts:多边形顶点的坐标,作为一个数组传递
    isClosed:传递一个布尔值指定多边形是否闭合

cv.putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin)
    org:文本的起始坐标
    fontFace:字体类型
        cv.FONT_HERSHEY_SIMPLEX
        cv.FONT_HERSHEY_PLAIN
        cv.FONT_HERSHEY_DUPLEX
    fontScale:字体的缩放比例
    bottomLeftOrigin: 一个布尔值,表示坐标原点是否位于文本框的左下角。默认情况下,它为False,表示坐标原点位于文本框的左上角


用鼠标作为画笔
dir():用于列出当前作用域中定义的变量/函数/模块的名称

设置鼠标回调函数的方法
cv.setMouseCallback(windowName, onMouse[, param])
    windowName:指定回调函数要应用于哪个窗口
    onMouse:回调函数,用于处理鼠标事件

鼠标回调函数:函数在发生鼠标事件时执行
def onMouse(event,x,y,flags,param):
    event:表示当前触发的鼠标事件
    捕获
    x:鼠标事件发生的x坐标
    y:鼠标事件发生的y坐标
        鼠标事件发生的坐标:鼠标在图像或窗口中相对于左上角的位置
    flags:额外的标志参数,提供关于鼠标事件的其他信息
    param:回调函数的额外参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值