如何在照片openCV中自动查找详细信息的坐标

2024-09-30 20:37:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆图片(附在下面)。我在每张图像中都有一个符号,我想使用openCV提取符号。然而,我不知道如何实现这一点,我也没有任何代码。是否有人有任何大致的想法,分别采取这些图像和自动删除的迹象,并有它的推广情况下,我添加了更多的图像类似于下面给出的示例图像

Example 1

Example 2

Example 3

Example 4

标志图像示例:

Example of sign image


Tags: 代码图像示例标志符号情况图片opencv
1条回答
网友
1楼 · 发布于 2024-09-30 20:37:02

这里有一个可行的解决方案

限制: 此解决方案假定符号始终包含数字。如果不是这样,这可能不起作用

如果gpu标志不可用,则将其设置为false

import cv2
from easyocr import Reader

image = cv2.imread("./image/path/image.jpg")

languages = ['en', 'ar']
reader = Reader(languages, gpu = True)
results = reader.readtext(image)

def cleanup_text(text):
    return "".join([c if ord(c) < 128 else "" for c in text]).strip()

for (bbox, text, prob) in results:

        text = cleanup_text(text)

        if text.isnumeric():
                print(bbox)
                (tl, tr, br, bl) = bbox
                tl = (int(tl[0]), int(tl[1]))
                tr = (int(tr[0]), int(tr[1]))
                br = (int(br[0]), int(br[1]))
                bl = (int(bl[0]), int(bl[1]))
                
                cv2.rectangle(image, tl, br, (0, 255, 0), 2)
                cv2.putText(image, text, (tl[0], tl[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2)

cv2.imshow("Sign", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Output:

积分: 显示边界框和清除文本的代码从该blog中获得

相关问题 更多 >