簡體   English   中英

使用opencv將圖像的一部分列入黑名單

[英]blacklisting part of an image with opencv

所以我的代碼使用帶有tesseract的opencv從圖像中提取文本,我想做的是將圖像的某些部分列入黑名單,這樣代碼就不會檢查代碼中是否有文本:

import numpy as np

img = cv2.imread('test.jpeg')

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)


sensitivity = 70
lower_range = np.array([0,0,255-sensitivity])
upper_range = np.array([255,sensitivity,255])

mask = cv2.inRange(hsv, lower_range, upper_range)


cv2.imshow('image', img)
cv2.imshow('mask', mask)

cv2.waitKey(0)
cv2.destroyAllWindows()

基礎圖片:

基礎鏡像

我想加入黑名單的部分圖像(紅色):

我想加入黑名單的圖像部分(紅色)

如果可能的話,有人可以幫我這樣做嗎?

您的目標是僅從生成的mask圖像中提取文本,並且您已經完成了大部分繁重的工作。 我嘗試在mask上使用easyOCR庫,它可以提供您正在尋找的結果。

使用mask作為輸入圖像,這是剩余的代碼:

# import library and initialize the reader
from easyocr import Reader
reader = Reader(['en'])

# pass input image
results = reader.readtext(mask)

輸出

[([[[93, 85], [245, 85], [245, 129], [93, 129]], 'SWHSY', 0.9746386534414473)]

它返回文本的邊界框位置、文本本身以及置信度分數。

以下代碼段允許您在檢測到的文本周圍繪制邊界框:

for (bbox, text, prob) in results[:5]:
    (tl, tr, br, bl) = bbox
    top_left = (int(tl[0]), int(tl[1]))
    bottom_right = (int(br[0]), int(br[1]))
    img = cv2.rectangle(img, top_left, bottom_right, (0, 0, 255), 3)
    img = cv2.putText(img, text, (tl[0], tl[1] - 20),   cv2.FONT_HERSHEY_SIMPLEX, 1.1, (255, 255, 0), 5)

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM