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+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告