概要图
1读取图像
cv2.imread()
函数是OpenCV库中用于读取图像文件的函数。它有两个参数:
-
文件名:这是第一个也是必需的参数,它指定了要读取的图像文件的路径和文件名。这个路径可以是相对路径,也可以是绝对路径。
-
标志:这是第二个参数,它是可选的,用于指定图像的读取方式。这个参数有三个预定义的值,通常使用以下两个:
cv2.IMREAD_COLOR
:这是默认值,它加载一个彩色图像。任何图像的透明度都会被忽略。在代码中通常用数字1表示。cv2.IMREAD_GRAYSCALE
:这个标志将图像以灰度模式读取。在代码中通常用数字0表示。cv2.IMREAD_UNCHANGED
:这个标志以包括alpha通道(如果存在)的方式加载图像。在代码中通常用数字-1表示。
import cv2
tupian ='D:\\1\\GenRen\\xvexi\\python\\python_opencv_\\li1.jpg'
image = cv2.imread(tupian)
print("ok1")
image2 = cv2.imread('li1.jpg')
print("ok2")
print(image2)
扩展
Alpha 通道是图像处理中的一个术语,它代表了一个额外的颜色通道,用于存储图像中每个像素的透明度信息。Alpha 通道通常与红色(R)、绿色(G)和蓝色(B)通道一起使用,构成所谓的 RGBA 颜色空间,其中:
- R(红色)通道代表红色分量。
- G(绿色)通道代表绿色分量。
- B(蓝色)通道代表蓝色分量。
- A(Alpha)通道代表透明度分量。
Alpha 通道的工作原理如下:
- Alpha 值为 0 表示像素是完全透明的。
- Alpha 值为 255(或在其位深度范围内的最大值)表示像素是完全不透明的。
- Alpha 值介于 0 和 255 之间表示像素具有不同程度的半透明性。
以下是 Alpha 通道的一些用途:
-
图像合成: Alpha 通道允许图像合成,其中可以将一个图像叠加到另一个图像上,而不显示背景。这在创建图形和视觉效果时非常有用。
-
透明效果: 在网页设计和动画中,Alpha 通道用于创建透明背景的图像,允许背景颜色或图像透过来。
-
去背景: 在图像编辑中,可以使用 Alpha 通道去除图像的背景,以便将对象从其背景中分离出来。
-
视觉效果: 在电影和视频游戏中,Alpha 通道用于创建烟雾、火焰和其他半透明的视觉效果。
-
图形软件: 在图形设计软件(如Adobe Photoshop)中,Alpha 通道用于创建和编辑选择区域,以及保存和载入选区。
注意
路径不可有中文
'D:/li1.jpg' 等于 'D:\\li1.jpg'
2显示图像
2-1 cv2.imshow()
cv2.imshow()
是 OpenCV 库中的一个函数,用于显示图像。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了很多处理图像和视频的函数。
以下是 cv2.imshow()
函数的基本用法:
cv2.imshow(window_name, image)
window_name
:字符串类型,表示显示图像的窗口名称。(一个名字)image
:要显示的图像,通常是 NumPy 数组格式。(读取的图像数据)
import cv2image1 = cv2.imread('li1.jpg')
print(image1)
cv2.imshow('chuang_ko', image1)
2-2 cv2.waitKey()
cv2.waitKey()
函数是 OpenCV 库中的一个函数,用于等待一个按键事件发生。这个函数通常用于在显示图像的窗口中暂停程序,直到用户按下某个键。以下是关于 cv2.waitKey()
的详细信息:
函数原型:
retval = cv2.waitKey([delay])
参数:
delay
:这是一个可选的整数参数,指定了函数等待按键事件的时间(以毫秒为单位)。如果delay
是正数,函数将等待指定的毫秒数;如果在这段时间内没有按键事件发生,函数将返回 -1。如果delay
是 0,函数将无限期等待按键事件。
返回值:
retval
:返回值是按键的 ASCII 码值,或者如果没有按键事件发生且delay
为正数时,返回 -1。如果delay
为 0 并且用户按下了某个键,retval
将是按键对应的 ASCII 码值。- 规定时间没按下返回 -1
- 规定时间按下返回按下键的ASCII码
- 值为0时一直等待按下
2-3 cv2.destroyAllWindows()
在 OpenCV 中,cv2.destroyAllWindows()
函数用于关闭所有已经打开的 OpenCV 窗口。这个函数没有返回值,它的作用是清理所有与 OpenCV 窗口相关的资源。
(注意大小写)
import cv2image1 = cv2.imread('li1.jpg')
print(image1)
cv2.imshow('chuang_k1o', image1)
cv2.destroyAllWindows()
cv2.imshow('chuang_ko', image1)
retval1 = cv2.waitKey(0) #用于等待一个按键事件发生
print(retval1)
扩展
cv2.destroyWindows()
是 OpenCV 库中的一个函数,用于关闭指定的 OpenCV 窗口。与 cv2.destroyAllWindows()
不同,cv2.destroyWindows()
允许你指定要关闭的窗口名称列表。
# 关闭指定的窗口
cv2.destroyWindow('Window 1')# ‘Window 1’ 是窗口的名字
3保存图像
cv2.imwrite()
是 OpenCV 库中的一个函数,用于将图像保存到文件中。这个函数非常有用,尤其是在处理图像后需要保存结果时。
函数原型如下:
retval = cv2.imwrite(filename, img)
参数:
filename
:这是一个字符串,指定了要保存图像的文件路径和文件名。文件扩展名(如.jpg
、.png
、.bmp
等)决定了图像的保存格式。img
:这是一个 NumPy 数组,代表要保存的图像。
返回值:
retval
:这是一个布尔值,表示图像是否成功保存。如果保存成功,返回True
;如果失败,返回False
。
import cv2image1 = cv2.imread('li1.jpg')
print(image1)
cv2.imwrite("li2.jpg", image1)#第一个参数是文件路径和文件名
#只写文件名表示为当前路径
注意
路径不可有中文
4获取图像属性
image.shape
:返回一个元组,表示图像的高度、宽度和通道数(对于彩色图像是 3,对于灰度图像是 1)。image.size
:返回一个整数,表示图像中元素的总数。对于彩色图像,这将是高度乘以宽度乘以通道数。image.dtype
:返回图像数据类型。通常,OpenCV 中的图像数据类型是uint8
,表示图像中的每个像素值都是一个 8 位的无符号整数。
import cv2# 读取图像
image1 = cv2.imread('li1.jpg')# 打印图像的形状
print(image1.shape) # 输出是 (height, width, channels)(高,宽,通道)# 打印图像的大小(元素的总数)
print(image1.size) # 输出是 height * width * channels# 打印图像的数据类型
print(image1.dtype) # 输出是 uint8