我们如何使用OpenCV加载图像?
要使用OpenCV从磁盘加载输入映像,我们必须使用 cv2.imread功能(图1)。
这 cv2.imread 函数接受一个参数,即图像在磁盘上的驻留路径:
image = cv2.imread(“path/to/image.png”)
OpenCV cv2.imread 函数然后返回两个值之一:
- 一个NumPy数组,用形状表示图像(num_rows,num_cols,num_channels )
- 一种 无类型对象,表示无法加载图像
通常, cv2.imread 函数将返回 没有任何如果输入图像的路径无效,那么请确保对输入图像的路径进行双重检查和三重检查!尽管OpenCV可以读取各种各样的图像文件类型,包括JPEG,PNG,TIFF和GIF,但该功能也会因不受支持的图像文件类型而失败。
1.项目结构
让我们回顾一下我们的项目结构。从“链接: 下载.”部分中免费获取源代码,解压缩内容,然后导航至保存位置:
我们的项目包含一个名为的Python脚本和一些测试图像。load_image_opencv.py
在我们的脚本中,我们将首先使用OpenCV功能从磁盘加载映像,然后将其显示在屏幕上进行评估。最后,我们将使用OpenCV将显示的图像保存回磁盘,作为一个新文件,名为cv2.imreadnewimage.jpg。
现在让我们使用OpenCV实现我们的图像加载Python脚本!
2.实施我们的OpenCV图像加载脚本
让我们开始学习如何使用OpenCV从磁盘加载输入图像。
创建一个名为的Python脚本 load_image_opencv.py,然后插入以下代码:
首先导入Python实用程序包 argparse用于在第2行上解析命令行参数,并在第3行上解析OpenCV库。
请注意,OpenCV开发人员采用了该名称 cv2从库的2.0版开始,并且无论我们使用的是哪个版本(例如3.x,4.x),都保留此命名约定。我们将使用最新版本4.3+。
这 argparse包允许我们将动态参数传递给Python脚本,这样我们就不必对每次想要更改其值时都需要手动更改的参数变量进行硬编码。
第6-9行设置了带有包含输入路径的单个参数的命令行参数解析器- 图像。我们根据需要设置参数,以确保在调用Python脚本时必须始终传递值。
用我们的输入 - 图像 动态定义的路径,现在很容易使用OpenCV加载图像:
OpenCV使该功能可以轻松地从磁盘读取各种图像文件类型。cv2.imread
我们输入加载到内存上13号线使用–imagecv2.imread,将其作为NumPy数组返回。成功完成后,我们将从数组的形状(第14行)中获取图像尺寸-我将在稍后提供有关此行代码的注意事项的更多信息。image(h, w, c)
现在,我们可以将图像尺寸(宽度,高度和通道数)打印到终端以进行查看(第18-20行)。
在以后的博客文章中,我们将讨论什么图像通道,但是现在请记住,彩色图像的通道数量将是三个,分别代表像素颜色的红色,绿色和蓝色(RGB)分量。
如果我们不知道OpenCV是否已正确读取图像,那么在内存中存储图像有什么好处?让我们在屏幕上显示图像以进行验证:
该OpenCV的功能是非常方便的在这里,因为它显示只用两个参数(我们的屏幕上的图像第23行)。第一个是一个字符串,代表分配给将打开以保存图形的窗口的名称。第二个是我们要显示的。cv2.imshow image
从那里,我们需要调用该函数以保持窗口打开,直到按下一个键为止(第24行)。如果未按下任何键,此函数将接收一个参数,该参数对应于用于使窗口保持活动状态的时间延迟(以毫秒为单位)。参数值0意味着cv2.waitKey函数无限期地等待。
最后,第28行将备份保存到磁盘。OpenCV cv2.imwrite函数接受文件名作为第一个参数,并接受第二个参数image 。
cv2.imwrite该函数保存一个文件名为“newimage.jpg”即自动转换图像为JPG格式。
现在,您应该可以将OpenCV应用于:
- 从磁盘加载图像
- 在屏幕上显示
- 写回磁盘
我们将在下一部分中回顾这些操作的一些结果。
3.OpenCV图像加载结果
现在是时候使用OpenCV从磁盘加载图片了!
首先,访问本教程的“链接: 下载.”部分以免费获取源代码和示例图像。
从那里打开一个终端,然后执行以下命令:
让我们尝试另一个图像
4.免费代码获取
链接: 下载.