PROBLEMA File (appena creato) not found! - Python 3.6

Tommaso Sala

Utente Attivo
870
140
CPU
Ryzen 3 1200
Dissipatore
Stock
Scheda Madre
A320m-k
HDD
SSD 240GB + HDD 2x500GB
RAM
8gb DDR4
PSU
EVGA 500w
Buonsalve,
sto cercando di creare (con grosse difficoltà) un programma che faccia una scansione di un'immagine, la ripulisca per evitare il fastidioso alone di sottofondo una volta stampata e me la sintetizzi in un testo.
Per ora non mi interessa dell'interfaccia grafica, la creerò in seguito. L'errore mi stupisce molto. Mi era capitato un'altra volta con pygame ma avevo risolto mettendo il doppio slash (C:\\...\\...\\a.png). Mi sono assicurato che a fosse al proprio posto più e più volte, specifico che a2 viene creata ma non viene sintetizzata.
Innanzitutto ecco il codice:

Codice:
import pytesseract
from PIL import Image, ImageEnhance, ImageFilter
def stampa():
    testo = pytesseract.image_to_string(Image.open("C:\\Users\\SUINO\\Desktop\\a2.jpg"))
    print(testo)
im = Image.open("C:\\a.jpg")
im = im.filter(ImageFilter.MedianFilter())
contrasto = ImageEnhance.Contrast(im)
im = contrasto.enhance(3)
im = im.convert('1')
im.save("C:\\Users\SUINO\\Desktop\\a2.jpg")
stampa()

Eseguendolo mi riporta un errore in quanto dice che non riesce a trovare im (che ho salvato nella penultima riga). Ho messo la definizione per un disperato tentativo anche se non ha senso.
Dove sbaglio?
Errore:
Codice:
Traceback (most recent call last):
  File "C:\Users\SUINO\Desktop\Nuova cartella\scanner.py", line 13, in <module>
    stampa()
  File "C:\Users\SUINO\Desktop\Nuova cartella\scanner.py", line 5, in stampa
    testo = pytesseract.image_to_string(Image.open("C:\\Users\\SUINO\\Desktop\\a2.jpg"))
  File "C:\Python 3.6\lib\site-packages\pytesseract\pytesseract.py", line 122, in image_to_string
    config=config)
  File "C:\Python 3.6\lib\site-packages\pytesseract\pytesseract.py", line 46, in run_tesseract
    proc = subprocess.Popen(command, stderr=subprocess.PIPE)
  File "C:\Python 3.6\lib\subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "C:\Python 3.6\lib\subprocess.py", line 992, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] Impossibile trovare il file specificato
 
M

Mursey

Ospite
Nella funzione stampa prova a fare una semplice
Python:
Image.open("C:\\Users\\SUINO\\Desktop\\a2.jpg")
in questo modo escludiamo che ci sia un problema di asincronismo tra il save e l'open.
 

Tommaso Sala

Utente Attivo
870
140
CPU
Ryzen 3 1200
Dissipatore
Stock
Scheda Madre
A320m-k
HDD
SSD 240GB + HDD 2x500GB
RAM
8gb DDR4
PSU
EVGA 500w
Nella funzione stampa prova a fare una semplice
Python:
Image.open("C:\\Users\\SUINO\\Desktop\\a2.jpg")
in questo modo escludiamo che ci sia un problema di asincronismo tra il save e l'open.
non dà errori.
EDIT: modificato perchè ho detto una stupidata
 

Tommaso Sala

Utente Attivo
870
140
CPU
Ryzen 3 1200
Dissipatore
Stock
Scheda Madre
A320m-k
HDD
SSD 240GB + HDD 2x500GB
RAM
8gb DDR4
PSU
EVGA 500w
Quindi il file esiste, allora il problema è nella funzione image_to_string o qualche sua dipendenza che manca.
come posso fare? Dal sito di python mostra proprio questa sintassi. Ho provato a togliere image.open prima di image_to_string e mi presenta un errore alla riga 14 ('str' has not module save).
 

Reeaver

Utente Attivo
1,188
134
CPU
AMD RYZEN 5 1600
Dissipatore
NOCTUA NH-U12S
Scheda Madre
MSI B350 TOMAHAWK
HDD
SSD SAMSUNG 860 EVO 500 GB + CRUCIAL MX 1TB
RAM
HYPER X 16GB 2400MHz DDR4 LP
GPU
ASUS ROG STRIX GTX1070 O8GB
Audio
SOUNDBLASTER AUDIGY FX
Monitor
LG ULTRAGEAR 2K
PSU
SEASONIC SSR-550M
Case
NZXT S340
Periferiche
MOUSE, TASTIERA, MANI
Net
FIBRA FTTH 1GB
OS
WINDOWS 10 PRO 64-BIT
Giusto per curiosità, puoi postare l'immagine ? Se è scritta a mano, allora pytesseract ti servirà a niente...
Per me è questo. L'immagine può essere che non la riconosca perchè non è scritta "al computer" ma con caratteri a mano.
 

Tommaso Sala

Utente Attivo
870
140
CPU
Ryzen 3 1200
Dissipatore
Stock
Scheda Madre
A320m-k
HDD
SSD 240GB + HDD 2x500GB
RAM
8gb DDR4
PSU
EVGA 500w
Giusto per curiosità, puoi postare l'immagine ? Se è scritta a mano, allora pytesseract ti servirà a niente...
Per me è questo. L'immagine può essere che non la riconosca perchè non è scritta "al computer" ma con caratteri a mano.
Sì certo ne ero a conoscenza, quella allegata è già stata parzialmente modificata dal programma. Tuttavia non dovrebbe avere difficoltà nel riconoscere la scritta in quanto verrebbe aumentato ulteriormente il contrasto.
 

Allegati

  • a.jpg
    a.jpg
    46.9 KB · Visualizzazioni: 71

Reeaver

Utente Attivo
1,188
134
CPU
AMD RYZEN 5 1600
Dissipatore
NOCTUA NH-U12S
Scheda Madre
MSI B350 TOMAHAWK
HDD
SSD SAMSUNG 860 EVO 500 GB + CRUCIAL MX 1TB
RAM
HYPER X 16GB 2400MHz DDR4 LP
GPU
ASUS ROG STRIX GTX1070 O8GB
Audio
SOUNDBLASTER AUDIGY FX
Monitor
LG ULTRAGEAR 2K
PSU
SEASONIC SSR-550M
Case
NZXT S340
Periferiche
MOUSE, TASTIERA, MANI
Net
FIBRA FTTH 1GB
OS
WINDOWS 10 PRO 64-BIT
Non dovrebbe essere troppo difficile...Io ho sempre lavorato con immagini a sfondo bianco.
Dai un'occhiata a questo.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!