gpt4 book ai didi

python - 如何从视频流中提取文本?

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:07 27 4
gpt4 key购买 nike

我正在尝试使用 opencv2 和 pytesseract 从来 self 的相机的视频流中提取一些文本。我裁剪图像以获得另一个小图像。我进行了不同的图像处理以使其正常工作。我反转了图像值,对其进行了模糊处理,将其二值化,但这些都没有使用 tesseract。我要提取的数据具有这些形式的“float/float”,这里是小图像的示例:

似乎字符没有分开,这是我可以从我的相机获得的最大分辨率。然后我尝试按颜色过滤,但没有结果,因为它是视频并且背景总是在移动。我将使用任何建议的 Python 模块。

最佳答案

并不像看起来那么简单。我为每个角色生成了 32x32 png 图像并为其添加了白噪声。视频的背景在移动。像 8 和 6 这样的字符差别不大。这是我目前的代码:

cap = cv2.VideoCapture("rtsp:...")
time.sleep(2)
templates = {}
w=[]
h=[]
for i in range(0,11):
templates["template_"+str(i)]=cv2.imread(str(i)+'.bmp',0)
tmp_w,tmp_h=templates["template_"+str(i)].shape[::-1]
w.append(tmp_w)
h.append(tmp_h)



threshold = 0.70



while(True):
les_points=[[],[],[],[],[],[],[],[],[],[],[]]
ret, frame = cap.read()
if frame==None:
break
crop_image=frame[38:70,11:364]
gray=cv2.cvtColor(crop_image,cv2.COLOR_BGR2GRAY)
for i in range(0,11):
res= cv2.matchTemplate(gray,templates["template_"+str(i)],cv2.TM_CCOEFF_NORMED)
loc = np.where( res >= threshold)
for pt in zip(*loc[::-1]):
les_points[i].append(pt[0])
cv2.rectangle(crop_image, pt, (pt[0] + w[i], pt[1] + h[i]), (0,i*10,255), 2)
print les_points
cv2.imshow('normal',crop_image)
if cv2.waitKey(1)& 0xFF == ord('p'):
threshold=threshold+0.01
print threshold
if cv2.waitKey(1)& 0xFF == ord('m'):
threshold=threshold-0.01
print threshold
if cv2.waitKey(1) & 0xFF == ord('q'):
break

我正在通过将图像拆分为与模板中的字符完全相同的大小来进行其他测试。但这并没有给出好的结果

关于python - 如何从视频流中提取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40906970/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com