在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。
本文將使用 NumPy 進行黑白影像反轉,並顯示反轉前後的影像。
import cv2
import numpy as np
# 讀取影像(灰階模式)
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 黑白反轉
inverted_image = 255 - image
# 顯示原影像和反轉後的影像
cv2.imshow('Original Image', image)
cv2.imshow('Inverted Image', inverted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)使用 OpenCV 的
cv2.imread
函數以灰階模式讀取影像。inverted_image = 255 - image使用 NumPy 對影像進行逐元素操作,將每個像素值變為其相對應的反轉值。如果原像素值是 255(白色),反轉後會變成 0(黑色)。
inverted_image = 255 - image
時,這是一個針對整個 NumPy 陣列的向量化操作。NumPy 會對陣列中的每個元素進行減法操作。cv2.imshow('Original Image', image)使用 OpenCV 的
cv2.imshow('Inverted Image', inverted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imshow
函數顯示原影像和反轉後的影像。這樣處理後,無論原本的像素是什麼顏色,都會被準確地反轉。白色像素(255)變成黑色(0),黑色像素(0)變成白色(255),其他灰階值會相應變換。