首页 > 解决方案 > 我怎样才能通过这种方法传递我的文件名?

问题描述

我正在截屏,然后我需要参考我刚刚拍摄的照片,以便翻译其中的内容。

当我直接将文件位置(例如“filex.png”)传递给 时readtext,它可以工作,但我只需要它将写入的文件传递给它。

import easyocr
import pyautogui
import time
import cv2 
import numpy as np

reader = easyocr.Reader(['en'])
tag = 1

for i in range(2):
    time.sleep(4)
    image = pyautogui.screenshot(region=(630,400,650,130))
    image = cv2.cvtColor(np.array(image),
                     cv2.COLOR_RGB2BGR)
    tag+=1

    img = cv2.imwrite(f"image{tag}.png", image)


    results = reader.readtext(img)
    text=""
    for result in results:
        text += result[1] + " "

        print(text)

标签: python

解决方案


在回答您的具体问题时,我认为您正在寻找类似的东西:

import easyocr
import pyautogui
import time
import cv2
import numpy as np

reader = easyocr.Reader(['en'])
tag = 1

for i in range(2):
    time.sleep(4)
    image = pyautogui.screenshot(region=(630, 400, 650, 130))
    image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
    tag += 1

    f_name = f"image{tag}.png"
    cv2.imwrite(f_name, image)
    results = reader.readtext(f_name)
    
    text = ""
    for result in results:
        text += result[1] + " "

        print(text)

您可以将文件名存储在变量中,然后将其传递给imwrite两者readtext


还有其他选项,具体取决于您需要在程序中访问哪些信息,以及您需要多快处理数据。

选项:np.array直接传递给readtext

image = pyautogui.screenshot(region=(630, 400, 650, 130))
image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
results = reader.readtext(image)

选项:将写入文件中的数据传递给readtext函数。

f_name = f"image{tag}.png"
cv2.imwrite(f_name, image)

with open(f_name, 'rb') as f:
    results = reader.readtext(f.read())

推荐阅读