python open cv(图像处理的基本操作)

概要图

1读取图像

cv2.imread() 函数是OpenCV库中用于读取图像文件的函数。它有两个参数:

  1. 文件名:这是第一个也是必需的参数,它指定了要读取的图像文件的路径和文件名。这个路径可以是相对路径,也可以是绝对路径。

  2. 标志:这是第二个参数,它是可选的,用于指定图像的读取方式。这个参数有三个预定义的值,通常使用以下两个:

    • cv2.IMREAD_COLOR:这是默认值,它加载一个彩色图像。任何图像的透明度都会被忽略。在代码中通常用数字1表示。
    • cv2.IMREAD_GRAYSCALE:这个标志将图像以灰度模式读取。在代码中通常用数字0表示。
    • cv2.IMREAD_UNCHANGED:这个标志以包括alpha通道(如果存在)的方式加载图像。在代码中通常用数字-1表示。
python 复制代码
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 通道的一些用途:

  1. 图像合成: Alpha 通道允许图像合成,其中可以将一个图像叠加到另一个图像上,而不显示背景。这在创建图形和视觉效果时非常有用。

  2. 透明效果: 在网页设计和动画中,Alpha 通道用于创建透明背景的图像,允许背景颜色或图像透过来。

  3. 去背景: 在图像编辑中,可以使用 Alpha 通道去除图像的背景,以便将对象从其背景中分离出来。

  4. 视觉效果: 在电影和视频游戏中,Alpha 通道用于创建烟雾、火焰和其他半透明的视觉效果。

  5. 图形软件: 在图形设计软件(如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() 函数的基本用法:

python 复制代码
cv2.imshow(window_name, image)
  • window_name:字符串类型,表示显示图像的窗口名称。(一个名字)
  • image:要显示的图像,通常是 NumPy 数组格式。(读取的图像数据
python 复制代码
import cv2

image1 = 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 窗口相关的资源。

(注意大小写)

python 复制代码
import cv2

image1 = 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() 允许你指定要关闭的窗口名称列表。

python 复制代码
# 关闭指定的窗口
cv2.destroyWindow('Window 1')

# 'Window 1'  是窗口的名字

3保存图像

cv2.imwrite() 是 OpenCV 库中的一个函数,用于将图像保存到文件中。这个函数非常有用,尤其是在处理图像后需要保存结果时。

函数原型如下:

retval = cv2.imwrite(filename, img)

参数:

  • filename:这是一个字符串,指定了要保存图像的文件路径和文件名。文件扩展名(如 .jpg.png.bmp 等)决定了图像的保存格式。
  • img:这是一个 NumPy 数组,代表要保存的图像。

返回值:

  • retval:这是一个布尔值,表示图像是否成功保存。如果保存成功 ,返回 True ;如果失败 ,返回 False
python 复制代码
import cv2

image1 = cv2.imread('li1.jpg')
print(image1)
cv2.imwrite("li2.jpg", image1)

#第一个参数是文件路径和文件名
#只写文件名表示为当前路径

注意

路径不可有中文

4获取图像属性

  • image.shape:返回一个元组,表示图像的高度、宽度和通道数(对于彩色图像是 3,对于灰度图像是 1)。
  • image.size:返回一个整数,表示图像中元素的总数。对于彩色图像,这将是高度乘以宽度乘以通道数。
  • image.dtype:返回图像数据类型。通常,OpenCV 中的图像数据类型是 uint8,表示图像中的每个像素值都是一个 8 位的无符号整数。
python 复制代码
import cv2

# 读取图像
image1 = cv2.imread('li1.jpg')

# 打印图像的形状
print(image1.shape)  # 输出是 (height, width, channels)(高,宽,通道)

# 打印图像的大小(元素的总数)
print(image1.size)  # 输出是 height * width * channels

# 打印图像的数据类型
print(image1.dtype)  # 输出是 uint8
相关推荐
果冻人工智能19 分钟前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工20 分钟前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz22 分钟前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤31 分钟前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭34 分钟前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~35 分钟前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码42 分钟前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng113342 分钟前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike43 分钟前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
庞传奇44 分钟前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow