PHP İLE BARKOD OKUMA UYGULAMASI |Resmin içindeki yazıları çekme|

'CaptainKanka

O Şimdi Asker!
14 Eki 2012
1,683
1,265
localhost/admin.php
Merhaba Arkadaşlar

Bu gün sizlere türkçe bir anlatımı olmadığı için php ile nasıl resimdeki yazıları alıp normal yazıya dönüştürebileceğimizi anlatacağım. Tabi ki kullanım alanı fazla olduğu için ben biraz daha geliştirip barkod okuyucu haline getirdim. Sizde bu uygulamayı geliştirerek yani javascript ve mysql ile birleştirerek stok takip uygulaması haline getirebilirsiniz.

Öncelikle açık kaynak kodlu tesseract ocr uygulamasını indiriyoruz.


indirip kurduktan sonra nereye kurduğumuzu unutmayalım çünkü php ile o yolu alacağız.

Genellikle c\programfiles içinde bulunur. artık kodlamamıza geçelim. ilk olarak sunucumuzda images adında bir klasör, index.php ve upload.php adında 2 adet kodlama alanı ve out.txt adında bir metin belgesi oluşturuyoruz.

Aşağıdaki kodları index.php ye girerek resim yükleyeceğimiz formu oluşturuyoruz.



PHP:
<html>
<body>
<h3>PHP OCR Test</h3>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit"/>
</form>
</center>
</body>

burada formu upload.php ye yönlendirdik ve form tipini multipart/form-data yaptık yoksa yazı formatından başka bir veri yollayamayız.

PHP:
<?php
if(isset($_FILES['image'])){
$file_name = $_FILES['image']['name'];     //post edilen verileri değişkenlerimize aktarıyoruz.
$file_tmp =$_FILES['image']['tmp_name'];
move_uploaded_file($file_tmp,"images/".$file_name);//post edilen resmi images klasörüne kopyaladık.
echo "<h3>Image Upload Success</h3>";
    //burası önemli aşağıdaki ilk alana tesseract-ocr yi nereye kurduysanız onun yolunu giriyorsunuz.
    //ikinci alana ise kendi sunucunuzdaki images klasörünü giriyoruz.
               //bu tırnaklar arasındaki alana tesseract          bu alana ise images klasörü                       
shell_exec('"C:\Program Files (x86)\Tesseract-OCR\tesseract" "C:\xampp\htdocs\karekod\images\\'.$file_name.'" out');
echo "<br><h3>OCR after reading</h3><br>";

$myfile = fopen("out.txt", "r") or die("Unable to open file!");
$deneme= fread($myfile,filesize("out.txt"));// burada ise resim yazıya dönüştürüldükten sonra out.txt den dönüşen yazıyı alıp değişkenimize aktarıyoruz.
fclose($myfile);

function tum_bosluklari_temizle($metin)
{
    $metin = str_replace("/s+/", "", $metin);
    $metin = str_replace(" ", "", $metin);
    $metin = str_replace(" ", "", $metin);
    $metin = str_replace(" ", "", $metin);
    $metin = str_replace("/s/g", "", $metin);
    $metin = str_replace("/s+/g", "", $metin);
    $metin = trim($metin);
    return $metin;
}
$deneme = tum_bosluklari_temizle($deneme);// ve yukarıdaki fonksiyonla barkod arasındaki boşlukları siliyoruz..
echo $deneme;// ekrana yazdırıyoruz.

}
?>

Eğer siz barkod değilde tüm yazıları yazdıracaksanız o zaman boşlukları sildirtmeyin. yani upload.php deki yapınızdan aşağıdaki alanı silin

PHP:
function tum_bosluklari_temizle($metin)

{

    $metin = str_replace("/s+/", "", $metin);

    $metin = str_replace(" ", "", $metin);

    $metin = str_replace(" ", "", $metin);

    $metin = str_replace(" ", "", $metin);

    $metin = str_replace("/s/g", "", $metin);

    $metin = str_replace("/s+/g", "", $metin);

    $metin = trim($metin);

    return $metin;

}

$deneme = tum_bosluklari_temizle($deneme);// ve yukarıdaki fonksiyonla barkod arasındaki boşlukları siliyoruz..

Kolay Gelsin.
 

MuhammedTr768

Kıdemli Üye
7 Kas 2021
2,933
1,815
31
MyKrallife
Merhaba Arkadaşlar

Bu gün sizlere türkçe bir anlatımı olmadığı için php ile nasıl resimdeki yazıları alıp normal yazıya dönüştürebileceğimizi anlatacağım. Tabi ki kullanım alanı fazla olduğu için ben biraz daha geliştirip barkod okuyucu haline getirdim. Sizde bu uygulamayı geliştirerek yani javascript ve mysql ile birleştirerek stok takip uygulaması haline getirebilirsiniz.

Öncelikle açık kaynak kodlu tesseract ocr uygulamasını indiriyoruz.


indirip kurduktan sonra nereye kurduğumuzu unutmayalım çünkü php ile o yolu alacağız.

Genellikle c\programfiles içinde bulunur. artık kodlamamıza geçelim. ilk olarak sunucumuzda images adında bir klasör, index.php ve upload.php adında 2 adet kodlama alanı ve out.txt adında bir metin belgesi oluşturuyoruz.

Aşağıdaki kodları index.php ye girerek resim yükleyeceğimiz formu oluşturuyoruz.



PHP:
<html>
<body>
<h3>PHP OCR Test</h3>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit"/>
</form>
</center>
</body>

burada formu upload.php ye yönlendirdik ve form tipini multipart/form-data yaptık yoksa yazı formatından başka bir veri yollayamayız.

PHP:
<?php
if(isset($_FILES['image'])){
$file_name = $_FILES['image']['name'];     //post edilen verileri değişkenlerimize aktarıyoruz.
$file_tmp =$_FILES['image']['tmp_name'];
move_uploaded_file($file_tmp,"images/".$file_name);//post edilen resmi images klasörüne kopyaladık.
echo "<h3>Image Upload Success</h3>";
    //burası önemli aşağıdaki ilk alana tesseract-ocr yi nereye kurduysanız onun yolunu giriyorsunuz.
    //ikinci alana ise kendi sunucunuzdaki images klasörünü giriyoruz.
               //bu tırnaklar arasındaki alana tesseract          bu alana ise images klasörü                       
shell_exec('"C:\Program Files (x86)\Tesseract-OCR\tesseract" "C:\xampp\htdocs\karekod\images\\'.$file_name.'" out');
echo "<br><h3>OCR after reading</h3><br>";

$myfile = fopen("out.txt", "r") or die("Unable to open file!");
$deneme= fread($myfile,filesize("out.txt"));// burada ise resim yazıya dönüştürüldükten sonra out.txt den dönüşen yazıyı alıp değişkenimize aktarıyoruz.
fclose($myfile);

function tum_bosluklari_temizle($metin)
{
    $metin = str_replace("/s+/", "", $metin);
    $metin = str_replace(" ", "", $metin);
    $metin = str_replace(" ", "", $metin);
    $metin = str_replace(" ", "", $metin);
    $metin = str_replace("/s/g", "", $metin);
    $metin = str_replace("/s+/g", "", $metin);
    $metin = trim($metin);
    return $metin;
}
$deneme = tum_bosluklari_temizle($deneme);// ve yukarıdaki fonksiyonla barkod arasındaki boşlukları siliyoruz..
echo $deneme;// ekrana yazdırıyoruz.

}
?>

Eğer siz barkod değilde tüm yazıları yazdıracaksanız o zaman boşlukları sildirtmeyin. yani upload.php deki yapınızdan aşağıdaki alanı silin

PHP:
function tum_bosluklari_temizle($metin)

{

    $metin = str_replace("/s+/", "", $metin);

    $metin = str_replace(" ", "", $metin);

    $metin = str_replace(" ", "", $metin);

    $metin = str_replace(" ", "", $metin);

    $metin = str_replace("/s/g", "", $metin);

    $metin = str_replace("/s+/g", "", $metin);

    $metin = trim($metin);

    return $metin;

}

$deneme = tum_bosluklari_temizle($deneme);// ve yukarıdaki fonksiyonla barkod arasındaki boşlukları siliyoruz..

Kolay Gelsin.
Elinize sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.