在 Opencv 中,如果想要加载展示一张图片,有以下几个步骤:
- 读取图像:根据指定路径读取图像,将图像转化为数字矩阵形式;
- 创建窗口:创建图像显示窗口,命名窗口名称;
- 显示图像:通过窗口以数字矩阵形式展示图像;
- 释放内存:展示完成,释放内存。
四个步骤
读取图像
OpenCV 提供函数 cv2.imread()
读取图像,该函数的一般形式如下:
image_arr = cv2.imread(filename, flags)
-
filename
:要读取的图像文件路径; -
flags
:可选参数,用于指定如何读取图像:-
cv2.IMREAD_COLOR
:默认值,读取 RGB 三通道图像; -
cv2.IMREAD_GRAYSCALE
:读取图像,并调整为单通道灰度图像; -
cv2.IMREAD_UNCHANGED
:读取图像,保持原始所有通道信息; - 等等
-
读取图像后,将以数字矩阵的形式保存在内存中 image_arr
变量中。这个数字矩阵包含了图像的像素信息,可以进行各种图像处理和分析操作,比如后续博文会介绍到图像转换、滤波、边缘检测等。
e . g . c o d e . e.g.code. e.g.code. 读取一张图像以及其灰度图矩阵信息:
import cv2
image_arr_1 = cv2.imread("universe.jpg")
image_arr_2 = cv2.imread("universe.jpg", cv2.IMREAD_GRAYSCALE)
print("原图矩阵为:", image_arr_1)
print("灰度图矩阵为:", image_arr_2)
创建窗口
OpenCV 提供函数 cv2.namedWindow()
来创建一个展示窗口并赋予名称,该函数的一般形式如下:
cv2.namedWindow('WindowName', WindowSize)
-
WindowName
:指定窗口名称; -
WindowSize
:可选参数,指定窗口大小:-
WINDOW_AUTOSIZE
: 默认值,窗口大小自适应内容; -
WINDOW_NORMAL
: 窗口正常显示,用户可以调整窗口大小; -
WINDOW_KEEPRATIO
: 保持图像的宽高比; - 等等
-
创建窗口后,我们将在显示图像时使用该窗口进行展示;
e . g . c o d e e.g.code e.g.code
# 创建一个名为 "MyWindow" 的窗口,用户可以调整窗口大小
cv2.namedWindow('MyWindow', cv2.WINDOW_NORMAL)
显示图像
OpenCV 提供的 imshow()
函数用来显示图像。该函数接受两个参数,第一个参数为窗口名称,第二个参数为要显示的图像数字矩阵。
到此,理论上我们已经可以打开一个名为 Image Of Universe 的窗口并展示我们的图像 universe.jpg,但是我们还缺少两行代码;
import cv2
# 读取图像
image_arr = cv2.imread('universe.jpg', cv2.IMREAD_COLOR)
# 创建展示窗口
cv2.namedWindow("Image Of Universe", cv2.WINDOW_NORMAL)
# 展示图像
cv2.imshow('Image Of Universe', image_arr)
# 未完待续
# 缺少设定窗口展示时间
# 缺少释放内存资源代码
首先,缺少设定窗口展示时间。Opencv 规定,需要设定窗口展示的时间,否则将会一闪而过。设定函数为 waitKey
,单位为毫秒;
cv2.waitKey(1000) # 代表窗口展示时间为1s
cv2.waitKey(0) # 窗口将一直展示
释放内存
最后,展示完成后,通过函数 destoryAllWindows()
释放内存;
cv2.destoryAllWindows()
完整代码
综上,完整代码如下:文章来源:https://www.toymoban.com/news/detail-823426.html
import cv2
image_arr = cv2.imread('universe.jpg', cv2.IMREAD_COLOR)
cv2.namedWindow("Image Of Universe", cv2.WINDOW_NORMAL)
cv2.imshow('Image Of Universe', image_arr)
key = cv2.waitKey(0)
if key == ord('q'):
print("退出展示窗口")
cv2.destroyAllWindows()
定稿:2024/1/24
版本:第三版
如有任何问题,请留言或私信,感谢!文章来源地址https://www.toymoban.com/news/detail-823426.html
到了这里,关于【OpenCV】P2 程序加载显示图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!