1、入门概念:
计算机图形学:如何通过model渲染出图片即图形学
计算机视觉:如何从图片中理解出里面的内容最终形成model,即计算机视觉

2、ffmpeg调用opencv的过程:api的上层是opencv,下层是ffmpeg。对于ffmpeg来说,要调用opencv主要是在filter中进行调用,通过采集模块获取的原始视频帧,通过filter调取opencv进行图像的处理,处理之后进行图像的编码,反之,解码之后拿到视频帧,通过filter调用opencv进行处理,之后再进行视频的渲染

3、opencv调用ffmpeg的过程:opencv调用ffmpeg主要是对于多媒体文件的处理,opencv在处理时需要数据源是原始的视频帧,例如rgb数据、yuv数据。但是对于用户来说,一般用户能给的都是jpg或者png或者视频,opencv显然无法将这些数据进行处理,所以需要调用ffmpeg的解码模块,对这些编码后的图像或者视频进行解码,拿到rgb数据或者yuv数据之后再进行相应的处理

4、安装:需要安装python numpy matplotlib opencv_python
其中numpy主要是用于矩阵的操作,numpy和opencv_python的结合会使得用python操作opencv时速度快
matplotlib主要用于显示

5、创建窗口
namedWindow()

6、显示窗口
imshow()

7、销毁窗口
destroyAllWindows()

8、设定窗口大小。如果不设定默认是图片大小(图片适应窗口大小/窗口适应图片大小)
resizeWindow()

9、加载图片
imread(path,flag)

10、保存图片
imwrite(name,img)
name是要保存的文件名,img是Mat类型

import cv2

cv2.namedWindow('img',cv2.WINDOW_NORMAL)
img = cv2.imread('/Users/lililiee/Desktop/WechatIMG6.jpeg')

#展示图片之后,按q键退出,按s键保存图片,按其他键打印333
while True:
    cv2.imshow('img',img)
    key = cv2.waitKey(0)
    print(key)  #是对键盘事件进行delay(ms)的等待(delay=0则为无限等待),若触发则返回该按键的ASSIC码(否则返回-1)
    print('q')
    print(ord('q'))
    if key & 0xFF == ord('q'):
        print(111)
        break
    elif key & 0xFF == ord('s'):
        print(222)
        cv2.imwrite('/Users/lililiee/Desktop/123.png',img)  #将图片保存为123.png
    else:
        print(333)


cv2.destroyAllWindows()


Posted on 2022-02-08 18:40  阿黎~  阅读(77)  评论(0编辑  收藏  举报