在OpenCV中檢測和識別條形碼可以使用cv2
庫中的barcode
模塊。以下是一個簡單的示例代碼:
import cv2
from pyzbar.pyzbar import decode
# 讀取圖像
image = cv2.imread('barcode.jpg')
# 將圖像轉換為灰度圖
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用pyzbar進行條形碼解碼
barcodes = decode(gray_image)
# 遍歷解碼結果
for barcode in barcodes:
barcodeData = barcode.data.decode("utf-8")
barcodeType = barcode.type
# 繪制邊界框和文本
x, y, w, h = barcode.rect
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.putText(image, barcodeData, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# 顯示結果圖像
cv2.imshow("Barcode Detection", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在這個示例中,首先讀取了一張包含條形碼的圖像,然后將其轉換為灰度圖像。接著使用pyzbar
庫中的decode
函數對灰度圖像進行條形碼解碼,得到解碼結果的數據和類型。最后在原圖像中繪制出條形碼的邊界框和文本,并顯示結果圖像。
需要注意的是,要在使用前安裝pyzbar
庫,可以通過pip install pyzbar
命令進行安裝。