如何解决从图像中提取书名
我有很多漫画,我想使用网络摄像头提取它们的标题。我在下面做了代码:
import cv2
import numpy as np
import pytesseract
from PIL import Image
from pytesseract import Output
cam = cv2.VideoCapture(2)
cv2.namedWindow("test")
img_counter = 0
while True:
ret,frame = cam.read()
if not ret:
print("failed to grab frame")
break
cv2.imshow("test",frame)
k = cv2.waitKey(1)
if k%256 == 27:
# ESC pressed
print("Escape hit,closing...")
break
elif k%256 == 32:
# SPACE pressed
img_name = "opencv_frame_{}.png".format(img_counter)
cv2.imwrite(img_name,frame)
print("{} written!".format(img_name))
image = cv2.imread(img_name)
im = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
img = Image.fromarray(im)
results = pytesseract.image_to_data(img,lang='fra+eng',output_type=Output.DICT)
# loop over each of the individual text localizations
for i in range(0,len(results["text"])):
# extract the bounding box coordinates of the text region from
# the current result
x = results["left"][i]
y = results["top"][i]
w = results["width"][i]
h = results["height"][i]
text = results["text"][i]
conf = int(results["conf"][i])
# filter out weak confidence text localizations
if conf > 50:
# display the confidence and text to our terminal
print("Confidence: {}".format(conf))
print("Text: {}".format(text))
print("")
text = "".join([c if ord(c) < 128 else "" for c in text]).strip()
cv2.rectangle(image,(x,y),(x + w,y + h),(0,255,0),2)
cv2.putText(image,text,y - 10),cv2.FONT_HERSHEY_SIMPLEX,1.2,255),3)
cv2.imshow("res",image)
#####################################
img_counter += 1
cam.release()
cv2.destroyAllWindows()
当我按“ SPACE”时,会拍下标题的照片,而tesseract会尝试提取一些文本。我做了下面的测试。
请问如何改善呢? (除非在书中找到用好字体写的标题:-))
欢呼
Karim
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。