Topic: Output immagine con page_dewarp script  (Letto 744 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline ale_r

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Output immagine con page_dewarp script
« il: Febbraio 02, 2017, 13:45 »
Mi sono avvicinato a Python da poco e sono alle prime armi.

Sto usando questo script: https://github.com/mzucker/page_dewarp, che serve a raddrizzare le linee di un testo scansionato. ho già settato i valori di PAGE_MARGIN_X e PAGE_MARGIN_Y a 0 per regolare i margini.

Vorrei chiedere se sarebbe possibile modificare il codice dello script ed evitare che l'immagine venga trasformata in bitonale (con http://docs.opencv.org/3.0-last-rst/modules/imgproc/doc/miscellaneous_transformations.html#cv2.adaptiveThreshold).

Ho anche scritto una domanda su stack overflow, con delle imagini esemplificative: http://stackoverflow.com/questions/41992744/grayscale-eight-colors-image-instead-of-bitonal-as-output-using-python-script-pa, ma non ho ricevuto risposta.

Vi ringrazio!

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.154
  • Punti reputazione: 9
    • Mostra profilo
Re: Output immagine con page_dewarp script
« Risposta #1 il: Febbraio 02, 2017, 14:26 »
Mah? A dargli un'occhiata molto veloce, quello script sembra più fatto per uso personale che altro... non è chiaro perché fa molte cose che fa... probabilmente all'autore serviva così... boh.
Comunque sembra di capire che cv2.adaptiveThreshold è chiamato solo DOPO che effettivamente i calcoli importanti sono già stati fatti, per convertire e salvare l'immagine un'ultima volta (evidentemente all'autore serviva così). La riga incriminata è la 822. Probabilmente ti basta eliminare quella e adattare di conseguenza le righe successive per ottenere quello che vuoi.

Offline ale_r

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Re: Output immagine con page_dewarp script
« Risposta #2 il: Febbraio 02, 2017, 14:47 »
Grazie! In effetti avevo provato a modificare quella riga, ma mi dava sempre errore. Il codice da modificare sarbbe quindi il seguente:

[codice]    thresh = cv2.adaptiveThreshold(remapped, 255, cv2.ADAPTIVE_THRESH_MEAN_C,
                                   cv2.THRESH_BINARY, ADAPTIVE_WINSZ, 25)

    pil_image = Image.fromarray(thresh)
    pil_image = pil_image.convert('L')

    threshfile = name + '_thresh.png'
    pil_image.save(threshfile, dpi=(OUTPUT_DPI, OUTPUT_DPI))

    if DEBUG_LEVEL >= 1:
        height = small.shape[0]
        width = int(round(height * float(thresh.shape[1])/thresh.shape[0]))
        display = cv2.resize(thresh, (width, height),
                             interpolation=cv2.INTER_AREA)
        debug_show(name, 6, 'output', display)

    return threshfile[/codice]

Cosa suggerisci di cambiare, oltre ad eliminare la riga iniziale?

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.154
  • Punti reputazione: 9
    • Mostra profilo
Re: Output immagine con page_dewarp script
« Risposta #3 il: Febbraio 02, 2017, 15:08 »
qui però intravedo vagamente l'esistenza di un minuscolo problema preliminare: sai programmare in python o no?
perché "suggerire di cambiare", ho già "suggerito". Togli quella riga, e adatta i riferimenti alle successive.

Offline ale_r

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Re: Output immagine con page_dewarp script
« Risposta #4 il: Febbraio 02, 2017, 15:10 »
Ho eiminato la riga e modificato i riferimenti come hai consigliato, e funziona perfettamente come intendevo! Grazie mille!! :D