一.使用OpenCV读取、显示和写入图像
读取、显示和写入图像是图像处理和计算机视觉的基础。即使在裁剪、调整大小、旋转或应用不同的过滤器来处理图像时,也需要首先读入图像。因此,掌握这些基本操作很重要。
OpenCV是世界上最大的计算机视觉库,它有以下三个内置功能,让我们来了解一下每个功能的具体功能:
1.imread() 帮助我们读取图像
2.imshow()在一个窗口里面展示图像
3.imwrite()将图像写入文件夹
在进入该部分之前,首先确保已经安装好了opencv-python
首先,浏览下面的这个代码实例。这个代码读取和展示了上面的图片。这段代码包含了上面提及的三个函数。当我们继续进行,我们会详细介绍每个函数。
# 导入cv模块
import cv2 as cv
# 读取图片
img = cv.imread('1.jpg')
# 显示图片
cv.imshow('read_img',img)
# 等待
cv.waitKey(0)
# 释放内存
cv.destroyAllWindows()
cv.imwrite('2.jpg',img)
效果如下图:
接下来,详细介绍上面提及的三种函数的用法
1.imread()
imread(filename,flags),该函数有两个参数
1.第一个参数是完整路径名
2.第二个参数是可选参数,现在用不到,则忽略
2.imshow()
imshow(window_name,img)此函数也接受两个参数:
1.第一个参数是将显示在窗口上的窗口名称。
2.第二个参数是要显示图像的路径
要同时显示多个图像,请为要显示的每个图像指定一个新的窗口名称
imshow()函数被设计为与waitKey()和destroyAllWindows()/destroyWindow()函数一起使用
waitKey()函数是一个键盘绑定函数
只需要一个参数,即窗口显示的时间(以毫秒为单位)。
如果用户在此时间段内按下任何键,程序将继续。
如果传递了0,程序将无限期地等待击键。
您还可以设置该功能来检测特定的键击,如键盘上的Q键或ESC键,从而更明确地告诉哪个键应该触发哪个行为
所以,想要展示图像的窗口在程序运行之后不瞬间消失,则必须要加waitKey()函数
函数destroyAllWindows()将销毁我们创建的所有窗口。如果需要销毁特定窗口,需要使用destoryWindow(window_name)函数,并将窗口名字传入。
3.imwrite()
imwrite(filename,image)
1.第一个参数是要写入文件夹的图像名称
2.第二个参数是你想要保存的图像,如果该图像被成功写入,该函数会返回True
二.使用opencv读取并写入视频
在OpenCV中读写视频与读写图像非常相似。视频不过是一系列通常被称为帧的图像所组成的。所以,需要做的就是循环播放视频序列中的所有帧,然后一次处理一帧。在这篇文章中,我们将演示如何从文件、图像序列和网络摄像头中读取、显示和写入视频。我们还将研究过程中可能出现的一些错误,并帮助了解如何解决这些错误。
先看一下下面的代码实例,稍等会详细介绍各个函数
import cv2 as cv
vid_capture = cv.VideoCapture('1.mp4')
if (vid_capture.isOpened() == False):
print('Error opening the video file')
else:
# Get frame