在 Python 中使用 OpenCV 模块反转图像

OpenCV 或开源计算机视觉库是用于图像处理和机器学习的实时计算机视觉库。它是用 C/C++ 编写的,可用于许多编程语言,如 C++、Python 和 Java。在 Python 中,OpenCV 通常与 NumPy 一起使用,NumPy 是一个基于 Python 的矩阵、多维数组和数学计算库。

图像使用 NumPy 多维数组表示,并使用 OpenCV 进行处理。使用 OpenCV 模块可以对图像进行翻转、缩放、旋转、镜像、改变颜色、反转颜色等多种操作。在本文中,我们将学习如何使用 OpenCV 模块反转图像。

反转图像

图像使用 RGB 或红绿蓝值表示。每个都可以采用 0 和 255 之间的整数值(都包括在内)。例如,红色用 (255, 0, 0) 表示,白色用 (255, 255, 255) 表示,黑色用 (0, 0, 0) 等表示。

反转图像意味着反转图像上的颜色。例如,红色的反转颜色将为 (0, 255, 255)。请注意,0 变成了 255255 变成了 0。这意味着反转图像本质上是从 255 中减去旧的 RGB 值。

New Value = 255 - Old Value

原图:

在 Python 中使用 OpenCV 模块反转图像

倒象:

在 Python 中使用 OpenCV 模块反转图像

在 Python 中使用 bitwise_not() 方法反转图像

OpenCV 有一个 bitwise_not() 方法,它执行按位非操作。我们可以使用这个函数来反转图像。参考以下代码。它认为你的工作目录中有一个名为 image.png 的图像。

import cv2

image = cv2.imread("image.png", 0)
inverted_image = cv2.bitwise_not(image)
cv2.imwrite("inverted.jpg", inverted)
cv2.imshow("Original Image",image)
cv2.imshow("Inverted Image",inverted_image)

该程序将首先加载图像,将其反转并将其保存在工作目录中。之后,它将显示原始图像和反转图像。

在 Python 中使用 numpy.invert() 方法反转图像

NumPy 有一个 invert() 方法,它执行按位反转或按位非操作。以下代码显示了我们如何使用此方法执行反演。

import cv2
import numpy as np

image = cv2.imread("image.png", 0)
inverted_image = np.invert(image)
cv2.imwrite("inverted.jpg", inverted)
cv2.imshow("Original Image",image)
cv2.imshow("Inverted Image",inverted_image)