开始说了一些opencv中的一些常用方法。
namedWindow方法
在OpenCV中,namedWindow
函数用于创建一个窗口,并给它指定一个名字。这个函数的基本语法如下:
import cv2
cv2.namedWindow('窗口名称', '标识' )
-
窗口名称
:其实窗口名称,其实也是这个窗口的id,方便对其进行操作。 -
标识
,这个其实有一个默认值WINDOW_AUTOSIZE
,用于设置窗口的各种属性。当然其还有很多值:
-
cv2.WINDOW_NORMAL
: 窗口可改变大小,也是常用的一个窗口。 -
cv2.WINDOW_FULLSCREEN
: 窗口是全屏显示。 -
cv2.WINDOW_OPENGL
: 打开OpenGL绘图
但是如果如下写:
import cv2
cv2.namedWindow('窗口', cv2.WINDOW_NORMAL )
窗口只会一闪而逝,所以一般不会单独时候,后面会有一个整体例子。
resizeWindow 方法
这个方法,可以设置创建好的窗口,具体呈现的大小。
cv2.resizeWindow('窗口名称', 宽(直接数值),高(直接数值))
窗口名称必须存在namedWindow方法创建的窗口名字中。
来一个例子:
import cv2
# cv2.namedWindow('窗口名称', cv2.WINDOW_NORMAL )
cv2.resizeWindow('窗口名称', 1920, 1080)
imshow 方法
其实前面两个就算是创建好好窗口,窗口也是一瞬就消失需要一个将这个窗口持续呈现,是所以就有个这个方法。
cv2.imshow('窗口名称', img)
- 窗口名称:窗口的名称,是一个字符串。在调用
cv2.imshow
后,这个窗口会显示对应的图像。 img
:要显示的图像,通常是一个NumPy数组。这个数组的维度是二维的,第一个维度表示图像的高度,第二个维度表示宽度。此外,数组的元素应该是8位无符号整数类型,因为OpenCV默认以BGR方式解释图像。可以是cv2.imread() 读取的图片返回值
import cv2
cv2.namedWindow('窗口名称', cv2.WINDOW_NORMAL )
cv2.resizeWindow('窗口名称', 1920, 1080)
# 这个地方的0代表的是灰度模式
cv2.imshow('窗口名称', 0)
但是这样的,窗口还是会一闪即逝,还需要其它方法。
waitKey 方法
cv2.waitKey(delay=0)
delay
:表示在函数返回之前等待用户输入的毫秒数。如果参数为0,则会一直等待用户输入;如果参数大于0,则会在指定的时间后自动返回,而不管用户是否输入。
这个函数返回一个整数,表示用户输入的字符的ASCII码。如果用户按下回车键(ASCII码为10),则函数返回13。
import cv2
cv2.namedWindow('窗口名称', cv2.WINDOW_NORMAL )
cv2.resizeWindow('窗口名称', 1920, 1080)
# 这个地方的0代表的是灰度模式
cv2.imshow('窗口名称', 0)
# 0 代表一直等到 数值的话,其单位毫秒
key = cv2.waitKey(0)
destroyAllWindows和destroyWindow 方法
这个看名字就知道了就是销毁窗口。
destroyAllWindows
:销毁所有的窗口destroyWindow
:销毁某个的窗口
cv2.destroyAllWindows()
cv2.destroyWindow("窗口名称")
现在来一个整体的例子:
import cv2
cv2.namedWindow('窗口名称', cv2.WINDOW_NORMAL )
cv2.resizeWindow('窗口名称', 1920, 1080)
# 这个地方的0代表的是灰度模式
cv2.imshow('窗口名称', 0)
# 0 代表一直等到 数值的话,其单位毫秒
key = cv2.waitKey(0)
if(key == 'q'):
# 这个是销毁所有窗口
# cv2.destroyAllWindows()
# 这个是销毁指定窗口
cv2.destroyWindow("窗口名称")
imread 方法
imread()
用于读取图像文件并将其加载到内存中。它接受一个参数,即要读取的图像文件的路径,并返回一个 NumPy 数组,其中包含图像的像素数据。
cv2.imread(filename[, flags])
filename
是要读取的图像文件的路径。flags
是一个可选参数,用于指定读取图像的方式。它可以是以下值之一:cv2.IMREAD_COLOR
:以彩色方式读取图像(默认值)。cv2.IMREAD_GRAYSCALE
:以灰度方式读取图像。cv2.IMREAD_UNCHANGED
:以原始格式读取图像(包括 alpha 通道)。
import cv2
cv2.namedWindow('阴风阵阵', cv2.WINDOW_NORMAL )
cv2.resizeWindow('阴风阵阵', 1092, 514)
img=cv2.imread('1.jpg')
cv2.imshow('阴风阵阵', img)
# 0 代表一直等到 数值的话,其单位毫秒
key = cv2.waitKey(0)
if(key == 'q'):
# 这个是销毁所有窗口
# cv2.destroyAllWindows()
# 这个是销毁指定窗口
cv2.destroyWindow("阴风阵阵")