如何使用OpenCV Python访问和修改图像中的像素值?

如何使用OpenCV Python访问和修改图像中的像素值?

要访问图像中的单个像素值,我们可以使用与NumPy数组索引相同的索引。我们可以使用切片访问一系列像素值。要修改像素值,我们使用简单的Python赋值运算符(“=”)。

步骤

要访问和修改图像中的像素值,我们可以按照以下步骤进行:

  • 导入所需的库。在以下所有示例中,所需的Python库是 OpenCV 。请确保您已经安装了它。

  • 使用 cv2.imread() 读取输入 RGB 图像。使用此方法读取的RGB图像处于BGR格式。可选地将读取的BGR图像分配给img。

  • 使用索引访问单个像素,并使用分配访问修改单个像素值。例如,为了将[200,150]处的像素值修改为红色,我们应用了以下代码:

img[200,150] = (0, 0, 255)
  • 使用切片访问一系列像素,并使用分配访问修改这些像素值。例如,为了将[100:300,150:350]处的像素值修改为红色,我们应用了以下代码:
img[100:300,150:350] = (0, 0, 255)

我们将在以下示例中使用此图像作为 输入文件

如何使用OpenCV Python访问和修改图像中的像素值?

示例

在此Python程序中,我们访问输入图像中某点的像素值。我们还查找三个不同颜色通道的像素值,并修改该点的像素值为红色通道。

# 访问和修改像素值的程序

# 导入所需库
import cv2

# 读取输入图像
img = cv2.imread('horizon.jpg')

# 使用索引访问像素值
print("像素值[200,150]:", img[200,150])
print("像素值蓝色通道[200,150]:", img[200,150][0])
print("像素值绿色通道[200,150]:", img[200,150][1])
print("像素值红色通道[200,150]:", img[200,150][2])

# 修改[200,150]处处的像素值为红色通道。
img[200,150] = (0, 0, 255)

当您运行以上程序时,它将产生以下输出 –

像素值[200,150]: [115 192 254]
像素值蓝色通道[200,150]: 115
像素值绿色通道[200,150]: 192
像素值红色通道[200,150]: 254
修改[200,150]处的像素值为红色通道后:[ 0 0 255]

示例

在这个Python程序中,我们的目标是访问输入图片的一个区域的像素值。我们还将这些像素值修改为红色。

# 访问和修改一个区域的像素值的程序

# 导入所需库
import cv2

# 读取输入图像
img = cv2.imread('horizon.jpg')

# 使用索引和切片来访问像素值

# 将一个区域的像素颜色修改为红色
img[100:300,150:350] = (0, 0, 255)

# 显示修改后的图像
cv2.imshow('Modified Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出

当您运行上面的程序时,它将产生以下输出−

如何使用OpenCV Python访问和修改图像中的像素值?

请注意在修改像素值为红色后的输出图像。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程