OpenCV Python 如何在图像上执行按位非操作?
我们可以使用 cv2.bitwise_not() 在图像上执行按位非操作。以下是在图像上执行按位非操作的语法 —
cv2.bitwise_not(img)
步骤
要计算图像的按位非值,您可以遵循以下步骤 —
- 导入所需的库。在下面的所有示例中,所需的 Python 库都是 OpenCV 。请确保您已经安装了它。
-
使用 cv2.imread() 方法将输入图像读取为灰度图像。指定图像类型的完整路径(即 png 或 jpg)。
-
使用 cv2.biwise_not(img) 计算输入图像的按位非操作。
-
显示按位非图像。
让我们通过一些 Python 示例来了解对输入图像执行按位非操作。
示例
在此示例中,我们计算输入图像的按位非值。
# 导入所需的库
import cv2
# 读取输入图像。
img = cv2.imread('not.png')
# 在输入图像上计算按位非值
not_img = cv2.bitwise_not(img)
# 显示计算出的按位非图像
cv2.imshow('Bitwise NOT Image', not_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我们将使用以下图像作为此示例的输入图像 —
输出
运行上述程序时,它将生成以下输出。
注意在输出窗口中不同形状的颜色反转。
示例
在此示例中,我们计算输入图像的按位非值。使用此方法,可以创建图像的负片。
# 导入所需的库
import cv2
# 读取输入图像
img = cv2.imread('sketch.jpg')
# 在输入图像上计算按位非值
not_img = cv2.bitwise_not(img)
# 显示计算出的按位非图像
cv2.imshow('Bitwise NOT Image', not_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我们将使用以下图像作为该程序的输入文件 —
输出
运行上述程序时,它将生成以下输出 —
请注意,上面的输出图像是原始输入图像的底片图像。
示例
在此示例中,我们定义一个大小为 300×300 的圆形图像。我们对该图像执行按位非操作。
%matplotlib qt
# 导入所需的库
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 定义一个圆形图像
img = np.zeros((300, 300), dtype = "uint8")
img = cv2.circle(img, (150, 150), 150, 255, -1)
# 对图像执行位NOT操作
not_img = cv2.bitwise_not(img)
# 显示位NOT输出图像
plt.subplot(121), plt.imshow(img, 'gray'), plt.title("Circle")
plt.subplot(122), plt.imshow(not_img, 'gray'),
plt.title("Bitwise NOT")
plt.show()
输出
运行上述程序,将会产生以下输出: output ŌłÆ
上述输出显示“位NOT”图像是“圆形”图像的反转图像。