Для этого вам нужно выяснить некоторые пути.
Попробуйте следующее:
Set-Alias sz "C:\Program Files\7-Zip\7z.exe"
$zipFile = "C:\temp\10 yard Fight.zip"
# Get Name of file without extension or path
$zipFolderToCreate = (gci $zipFile).BaseName
# Get path of zip
$path = (gci $zipFile).Directory.FullName
sz x -o"$path\*" "$zipFile" -r
$filecount= (dir "$path\$zipFolderToCreate" | measure).Count
Попытка сделать что-то похожее на
import pytesseract
from PIL import Image
import requests
import io
response = requests.get('https://i.stack.imgur.com/J2ojU.png')
text = pytesseract.image_to_string(Image.open(io.BytesIO(response.content)), lang='eng',
config='--psm 7')
print(text)
со значениями --psm
, равными или большими, чем 6, дала мне «Gm».
Если изображение хранится локально (и в вашем рабочем каталоге), просто отбросьте переменную response
и измените определение text
со строками
image_name = "J2ojU.png" # or whatever appropriate
text = pytesseract.image_to_string(Image.open(image_name), lang='eng', config='--psm 7')
Есть несколько причин:
Края не острые и непрерывные (Под острым я имею в виду гладкие, а не с зубами)
Image слишком мал, вам нужно изменить размер
Шрифт отсутствует (не обязательно, но обученный шрифт невероятно улучшает возможность распознавания)
На основе пункты 1) и 2) я смог распознать текст.
1) Я изменил размеры изображения 3x и 2) Я размыл изображение, чтобы сделать края сглаженными
import pytesseract
import cv2
import numpy as np
import urllib
import requests
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
from PIL import Image
def url_to_image(url):
resp = urllib.request.urlopen(url)
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
return image
url = 'https://i.stack.imgur.com/J2ojU.png'
img = url_to_image(url)
retval, img = cv2.threshold(img,200,255, cv2.THRESH_BINARY)
img = cv2.resize(img,(0,0),fx=3,fy=3)
img = cv2.GaussianBlur(img,(11,11),0)
img = cv2.medianBlur(img,9)
cv2.imshow('asd',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
txt = pytesseract.image_to_string(img)
print('recognition:', txt)
>> recognition: Gm
Этот скрипт хорош для тестирования любого изображения в сети
Вся обработка основана на вашем размещенном изображении
Распознавание текста не легко. Каждое признание требует специальной обработки. Если вы попытаетесь выполнить эти шаги с другим изображением, оно может вообще не работать. Важно много опознать на изображениях, чтобы вы понимали, чего хочет тессеракт