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.
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.
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
Kolay Gelsin.
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.
Tesseract OCR
Download Tesseract OCR for free. Commercial quality OCR. A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV.
sourceforge.net
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.