OpenCV Python – 如何对图像执行按位非运算?


我们可以使用cv2.bitwise_not()对图像执行按位非运算。以下是按位非图像运算的语法:

cv2.bitwise_not(img)

步骤

要计算图像的按位非,您可以按照以下步骤操作:

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

  • 使用cv2.imread()方法将输入图像读取为灰度图像。使用图像类型(即png或jpg)指定图像的完整路径。

  • 使用cv2.bitwise_not(img)计算输入图像的按位非

  • 显示按位非图像

让我们借助一些Python示例来了解输入图像上的按位非运算。

示例

在此示例中,我们计算输入图像的按位非。

# import required libraries import cv2 # read an input image. img = cv2.imread('not.png') # compute bitwise NOT on input image not_img = cv2.bitwise_not(img) # display the computed bitwise NOT image cv2.imshow('Bitwise NOT Image', not_img) cv2.waitKey(0) cv2.destroyAllWindows()

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


输出

运行以上程序后,将产生以下输出。


注意输出窗口中不同形状的颜色反转。

示例

在此示例中,我们计算输入图像的按位非。使用此方法,您可以创建图像的负片。

# import required libraries import cv2 # read an input image img = cv2.imread('sketch.jpg') # compute bitwise NOT on input image not_img = cv2.bitwise_not(img) # display the computed bitwise NOT image cv2.imshow('Bitwise NOT Image', not_img) cv2.waitKey(0) cv2.destroyAllWindows()

我们将使用以下图像作为此程序的输入文件


输出

运行以上程序后,将产生以下输出:


请注意,以上输出图像是原始输入图像的负片。

示例

在此示例中,我们定义了一个大小为300×300的图像圆圈。我们对此图像执行按位非。

%matplotlib qt # import required libraries import cv2 import numpy as np import matplotlib.pyplot as plt # define an image as a circle img = np.zeros((300, 300), dtype = "uint8") img = cv2.circle(img, (150, 150), 150, 255, -1) # perform bitwise NOT on image not_img = cv2.bitwise_not(img) # Display the bitwise NOT output image plt.subplot(121), plt.imshow(img, 'gray'), plt.title("Circle") plt.subplot(122), plt.imshow(not_img, 'gray'), plt.title("Bitwise NOT") plt.show()

输出

运行以上程序后,将产生以下输出


以上输出显示“按位非”图像是“圆圈”图像的反转图像。

更新于:2022年12月2日

1K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告