传统计算机视觉——基础处理

61 阅读1分钟

安装

pip install opencv-python==4.5.5.64

RGB

3通道: Red通道 Green通道 Blue通道

HSV

3通道: Hue:色调,颜色种类 Saturation:饱和度,颜色的浓淡 Value:明度,颜色明亮度

基本处理

  • 图像读取:img = cv.imread("./images/small.png")

  • 图像处理:

    • 彩色图转灰度图:gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
      • 后面cv.COLOR_BGR2GRAY是格式,格式决定可视化方式
    • 图像可视化:
      • cv.COLOR_BGR2GRAY格式:cv.imshow('image', img)
      • cv.IMREAD_GRAYSCALE格式:plt.imshow(img, cmap='gray') plt.show()
    • 暂停图像:
      • 获取按下的任意键对应的ASCII 码:k = cv.waitKey(0) & 0xFF
    • 释放所有资源:
      • cv.destroyAllWindows()
    • 保存的图像数据:
      • cv.imwrite("./images/t1.png", img)
  • Numpy处理:

    • 图像转置,宽高互换:
      • cv.imshow('image', np.transpose(img, (1, 0, 2)))
    • 图像截取:
      • cv.imshow('image', img[200:400, 100:300, :])
  • 视频处理

    • 创建一个基于摄像头的视频读取流:

      • capture = cv.VideoCapture(0)
    • 获取视频宽高属性:

      • size = (int(capture.get(cv.CAP_PROP_FRAME_WIDTH)), int(capture.get(cv.CAP_PROP_FRAME_HEIGHT)))
    • 读取当前时刻的摄像头捕获的图像,返回为值:True/False, Image/None

      • success, img = capture.read()
    • 设置摄像头相关参数:

      • success = capture.set(cv.CAP_PROP_FRAME_WIDTH, 880) if success: print("设置宽度成功")
    • 设置视频中的帧率,也就是每秒存在多少张图像

      • fps = 25
    • 指定视频编码格式(FourCC 代码)

      • video_writer = cv.VideoWriter('./videos/v2.avi', cv.VideoWriter_fourcc('I', '4', '2', '0'), fps, size)
    • 存放视频帧的路径: image.png

    • 构建 6 秒的视频输出: image.png

    • 创建视频路径 image.png

    • 等待任意键盘输入 image.png

  • 基于OpenCV的基本绘画

    • 创建一个黑色的图像(BGR格式):
      • img = np.zeros((512, 512, 3), np.uint8)
    • 画一条直线 image.png
    • 画一个矩形 image.png

    • 画一条圆 image.png

    • 画一个椭圆 image.png

    • 画多边形 image.png

    • 添加文本 image.png