Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odczytanie napisu z obrazu - OCR
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


Próbuję odczytać napis z obrazka. Pobrałem w tym celu coś takiego jak OCR - http://sourceforge.net/projects/phpocr/?source=typ_redirect
W przykładzie (index.php) wszystko ładnie czyta, jak zauplowadowałem swój obrazek to też bez przeszkód odczytał dwie pierwsze cyfry, ale kolejne znaki już zostały pomylone. Chodzi o to, że np. mój obrazek nie zawiera w ogóle małych liter oraz niektórych dużych (takich jak 0), a skrypt myli mi literę C z 0. Nie wiem za bardzo jak dać mu do zrozumienia (i tym samym ułatwić pracę), że na obrazku nigdy nie będą występowały małe litery i niektóre duże litery/cyfry? Dodatkowo spotkałem się w pliku z czymś takim:

  1. //If you create a new font include file replace char_inc_6.php with your own
  2. $conf['font_file'] = 'char_inc_6.php';


plik ten zawiera sporo tablic, przykład:

  1. Array("char"=>Array(
  2. Array(0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0),
  3. Array(0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0),
  4. Array(0,0,0,0,0,0,0,1,2,3,4,5,5,5,5,5,5,4,3,2,1,1,0,0,0,0,0,0),
  5. Array(0,0,0,0,0,1,2,3,4,6,7,8,8,8,8,8,8,7,6,4,3,2,1,0,0,0,0,0),

itd.

Moja czcionka to Arial Black, wydaje mi się, że te tablice dotyczą bezpośrednio znaków danej czcionki. Pytanie jak wygenerować taki plik dla mojej czcionki?

Ktoś miał z tym styczność kiedyś, aby mnie jakoś nakierować?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Na tym Forum nie pomagamy łamać zabezpieczeń.


--------------------
Go to the top of the page
+Quote Post
Michael2318
post
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


Nie chcę łamać żadnych zabezpieczeń, interesuje mnie odczytanie sloganów reklamowych wraz z procentem rabatowym, np.:

Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




My tego nie wiemy smile.gif


--------------------
Go to the top of the page
+Quote Post
Michael2318
post
Post #5





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


Rozumiem, że nie dostanę tutaj żadnej pomocy?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Kshyhoo nie przesadzaj...

Cytat
Rozumiem, że nie dostanę tutaj żadnej pomocy?
Czemu? Temat nie został zamknięty. Jak ktoś bedzie wiedział, to zapewne pomoże.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kartin
post
Post #7





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

Ostrzeżenie: (0%)
-----


Rozważ użycie zewnętrznych programów (np. tesseract, gocr) wywoływanych z PHP lub serwisów oferujących OCR online.


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




http://edward_ch.republika.pl/pod_prakt.html wink.gif
Go to the top of the page
+Quote Post
Michael2318
post
Post #9





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


Po całym dniu ślęczenia przed komputerem, udało mi się znaleźć coś co spełnia moje oczekiwania - http://www.freefileconvert.com/
Uploaduję wybrane zdjęcie, wybieram, że interesuje mnie w efekcie treść w pliku .txt, klikam "convert" i mam co chcę.

Jednak kolejny problem jaki się pojawia to próba napisania skryptu, który sam z automatu zauploaduje mi tam moją grafikę.
Z pobraniem nie ma żadnego problemu bo jak już wyślę poprzez formularz mój plik to link przyjmuje postać: http://www.freefileconvert.com/converting....utputFormat=txt
gdzie nazwa grafiki w linku jest oryginalna, bez obróbki bo po krótkim czasie plik znika z serwera. Tak więc jeśli udałoby mi się wgrać samą grafikę na serwer poprzez formularz to mój efekt zostałby osiągnięty.

Kod HTML, który odpowiada za wysłanie grafiki:

  1. <form id="file_conversion_form" name="file_conversion_form" method="post" enctype="multipart/form-data" action="/scripts/uploadFile.php">
  2. <table style="height: 107px;">
  3. <tr>
  4. <td>
  5. <td align="left" style="padding-left: 10px; vertical-align: top;">
  6. <font style="color: #2647a0; font-size:15px; font-weight:bold; display:block;margin-bottom:5px;">1) Input File</font>
  7. <font style="font-size: 13px;">
  8. <p style="margin-bottom:10px;">Choose a file to convert (Max: 300.0 MB):</p>
  9. <input name="MAX_FILE_SIZE" value="314572800" type="hidden"/>
  10. <input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="53fdd7b0d6777"/>
  11. <input type="file" id="input_file" name="input_file" onchange="updateOutputFormats(this)" size=20><br>
  12. </font>
  13. <font size=1px>Type: odt, doc, pdf, mp3, mpg, docx, avi, pptx...</font><br>&nbsp;
  14. </td>
  15. <td>
  16. <img width="10" src="images/spacer.gif">
  17. </td>
  18. <td bgcolor="#505050">
  19. <img width="1" src="images/spacer.gif">
  20. </td>
  21. <td>
  22. <img width="10" src="images/spacer.gif">
  23. </td>
  24. <td align="left" style="padding-left: 10px; vertical-align: top;">
  25. <font style="color: #2647a0; font-size:15px; font-weight:bold; display:block;margin-bottom:5px;">2) Output Format</font>
  26. <font style="font-size: 13px;">
  27. <p style="margin-bottom:10px;">Select an ouput format to convert to:</p>
  28. <select id="file_output_format" name="file_output_format" style="width: 170px;">
  29. <option value="">[Select Input File First]</option>
  30. </select>
  31. </font>
  32. </td>
  33. <td>
  34. <img width="10" src="images/spacer.gif">
  35. </td>
  36. <td bgcolor="#505050">
  37. <img width="1" src="images/spacer.gif">
  38. </td>
  39. <td>
  40. <img width="10" src="images/spacer.gif">
  41. </td>
  42. <td align="left" style="padding-left: 10px; vertical-align: top;">
  43. <font style="color: #2647a0; font-size:15px; font-weight:bold; display:block; margin-bottom:5px;">3) Convert</font>
  44. <font style="font-size: 13px;">
  45. <p style="margin-bottom:10px;">By clicking you agree to our <a href="tos.php">Terms</a><p>
  46. <center><input type="button" value="Convert" id="upload_file_button"></center>
  47. </font>
  48. </td>
  49. </tr>
  50. </tbody>
  51. </table>
  52. </center>
  53. </form>


Na podstawie tego kodu napisałem sobie prosty skrypt CURL:

  1. <?php
  2.  
  3. $c = curl_init();
  4. curl_setopt($c, CURLOPT_URL, 'http://www.freefileconvert.com/');
  5. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.2) Gecko/20090729 desktopsmiley_2_2_5643778701369665_44_71 DS_gamingharbor Firefox/3.5.2 (.NET CLR 3.5.30729)');
  6. curl_setopt($c, CURLOPT_HEADER, true);
  7. curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
  8. curl_setopt($c, CURLOPT_COOKIEFILE, 'curl.txt');
  9. curl_setopt($c, CURLOPT_COOKIEJAR, 'curl.txt');
  10. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  11. $p = curl_exec($c);
  12. curl_close($c);
  13.  
  14. preg_match('"id=\"progress_key\" value=\"(.*?)\""si', $p, $matches);
  15.  
  16. $post_params = array();
  17. $post_params['input_file'] = '@'.'male2.png';
  18. $post_params['file_output_format'] = 'txt';
  19. $post_params['MAX_FILE_SIZE'] = '314572800';
  20. $post_params['APC_UPLOAD_PROGRESS'] = $matches[1];
  21.  
  22. $c = curl_init();
  23. curl_setopt($c, CURLOPT_URL, 'http://www.freefileconvert.com/scripts/uploadFile.php');
  24. curl_setopt($c, CURLOPT_HTTPHEADER, array(
  25. 'Content-Type: multipart/form-data')
  26. );
  27. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.2) Gecko/20090729 desktopsmiley_2_2_5643778701369665_44_71 DS_gamingharbor Firefox/3.5.2 (.NET CLR 3.5.30729)');
  28. curl_setopt($c, CURLOPT_HEADER, true);
  29. curl_setopt($c, CURLOPT_POST, true);
  30. curl_setopt($c, CURLOPT_POSTFIELDS, $post_params);
  31. curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
  32. curl_setopt($c, CURLOPT_COOKIEFILE, 'curl.txt');
  33. curl_setopt($c, CURLOPT_COOKIEJAR, 'curl.txt');
  34. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  35. $p = curl_exec($c);
  36. curl_close($c);
  37.  
  38. echo $p;
  39.  
  40. ?>


Ale... to nie działa.
Widać w kodzie strony, że po kliknięciu w button, odpalany jest ten skrypt:

Kod
//Event fired when upload button is clicked
var onUploadButtonClick = function(e){
    acceptCookies();
    if($('input_file').value == '') {
        alert('Please press the browse button and pick a file to convert.');
        return false;
    } else if($('file_output_format').value.length >= 10) {
        alert('Please select an output format in which your want to convert your file.');
        return false;
    }
    $('upload_file_button').disabled=true;
    var uploadHandler = {
        upload: function(o) {
            var r = eval('(' + o.responseText + ')');
            if(r.hasError){
                var errorString = '';
                for(var i=0; i < r.errors.length; i++){
                    errorString += r.errors[i];
                }
                postwith("error.php", {message:errorString});
            }else{
            clearInterval(ProgressInterval);
            myJsProgressBarHandler.setPercentage('progressbar',100);
            var conversionURL = '/converting.php?fileToConvert='+r.uploadedFilename+'&outputFormat='+r.outputFormat;
            window.location.href = conversionURL;
            }
        }
    };
    YAHOO.util.Connect.setForm('file_conversion_form', true);
    YAHOO.util.Connect.asyncRequest('POST', '/scripts/uploadFile.php', uploadHandler);
    $D.setStyle('upload_progress_bar_container', 'display', 'block');
    ProgressInterval = setInterval("uploadProgress()", 1000);
}


który po prostu zezwala na odpalenie tego formularza z linku /scripts/uploadFile.php i wgranie pliku.
Niestety mój CURL nie wgrywa grafiki i nie mam pojęcia czemu tak się dzieje. Skrypt uploadFile.php na tej stronie zawsze daje pustą białą stronę, nieważne czy upload się powiedzie czy też nie, dlatego zadanie jest utrudnione trochę bo nie wiem co może być nie tak. Nagłówki wymagane dodałem, pola input zapisałem wszystkie. Nic innego mi do głowy nie przychodzi.

Jakieś sugestie? :/

Poradziłem sobie! smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 20:21