Jump to content
php.lv forumi

LMT


Klez

Recommended Posts

ir taada doma uzcepinaat scriptu, kas ljauj suutiit sms bez taa kodinja.

bet doma i uzbuuveet taa lai lunux nav jaaiejauc. tiiru uz php baazes.

tikai taa iisti nevaru saprast ar k lai saak.

<?
$fd=fopen("http://www.lmt.lv/lv/index.php?pageid=3005001006","r");
while ($line=fgets($fd,1000))
{
 $bla.=$line;
}
fclose ($fd);
$kods = explode("Tavs autorizācijas kods",$bla,100);
$kods_tmp = strip_tags($kods[1],"<img>");
$img_url = substr($kods_tmp,15,48); //bildiites adrese 
?>
<img src="<?="http://www.lmt.lv".$img_url;?>" border="0">

te dabuu to bildiiti.

manas domas ir shaadas:

1) bildei vaig fonu novaakt; (nezinu vai tas i iespeejams)

2) tos burtus vaig nolasiit;

 

tikai nav ne jausmas kaa lai to izdara. es te meeginaaju ar visaadaam funkcijaam uzdabuut tai bildiitei baltu fonu, bet man nesanaak. ne kaadu error raada nekaa.

pilniigi neko. varbuut kaac var ievirziit mani pareizajaa virzienaa. ar ko saakt. kaadas f-cijas izmantot.

kaadaa kaartiibaa to bildiiti apstraadaat???

paliidziet ljautinji!!! :o

Link to comment
Share on other sites

  • Replies 47
  • Created
  • Last Reply

Top Posters In This Topic

Rādi piemēru, kā tu to dari, tad mēs rādīsim, kur tev tur ir kļūdas :)

Es starp citu, pirms pāris mēnešiem šito mēģināju, bet nebij daudz brīvā laika, un arī nekas prātīgs nesanāca. Ideja bij tāda, sākumā bildi pataisam uz melnbalto, tas bij triviāli. Tad palika tās restes un burti melli. Tjipa ieguvu divdimensiju masīvu no booleaniem. Tad vajadzēja novāk restes. Vot šeit bija problēmas. Pārāk tā bilde izkropļojās, kautgan visādus variantus izmēģinājos. Nu un tad kad to izdarīju, tad sadalīju bildi trīs daļās, katrā savs burts/cipars un laidu atsevišķos fragmentus jau iepriekš sataisītā neironu tīklā, bet nu saku, tā kā tā rūtiņu novākšana pamatīgi sabojāja bildi, tad mans tīkls pareizi atpazina tikai apmēram 70% gadījumu. Un tas ir par maz.

Link to comment
Share on other sites

1) nu, lai fonu dabūtu nost var padarboties ar

imagefill() iekš kvadrātiņiem

imageline() pa rūtiņu režģi, rūtiņas savukārt var uzminēt, pastaigājoties ar imagecolorat ā) no augšas uz leju dažus pikšeļus pa labi no augšējās kreisās malas

bē) no kreisās uz labo, dažus piekšeļus no augšas - kamēr nesastop to viņu savādo krāsu.

 

2) te būs grūtāk. viens variants - no komandrindas barot imagu kaut kādam command-line OCR (go google, linuxam droši vien kaut kas tāds iraid)

vēlams pirms tam burtus savienot (ejot no augšas uz leju vai no "sāņiem" pārbaudām, ja pikselis = fona krāsā, bet pikselis+1 un pikselis-1 - tajā sarkanā, tad aizplūdinām arī).

Ja komandrindas OCR nav atrodams/izmantojams, tad mans tālākais variants:

ā) cītīgi jāpiestrāda pie burtu atpakaļsavienošanas, lai, vienalga kāds tas režģis būtu, beigu rezultātā apstrādāts burts piekselis pikselī būtu vienāds

bē) sagraizam bildi 3jos burtos (ejot no kreisās uz labo meklējam vertikālo līniju, kas pilnība fona krāsā un nograizam līdz tai)

cē) apgraizam katru burtu līdz minimumam (ķipa crop)

dē) ieglabājam kā šablonu

ē) šim šablonam piešķiram tajā redzamā burta nosaukumu

 

pie jaunās bildes saņemšanas izpildām fonošanu, 2ā līdz 2cē un tad salīdzinām ar esošiem šabloniem

 

nu tas tā, pafantazējot

Link to comment
Share on other sites

varbuut vari iedot to scriptu, kas uztaisa malenbaltu to bildiiti?

es meeginaaju ar imagecolorallocate

nekaa nesanaaca. es meeginaaju vairaakas funkcijas

no shitaadas f-cijas

     <?

     function gfx_create($text) {
  $img=ImageCreate(18,16);
  $bg=ImageColorAllocate($img,0,0,0); 
  $txt=ImageColorAllocate($img,136,0,0);
  $trans=imagecolortransparent($img,$bg);
  ImageString($img,5,1,1,"$text",$txt); 
  return $img;
}

echo gfx_create("5");
     ?>

 

sanjeemu error : Resource id #2

Link to comment
Share on other sites

Nu es to fonu ņēmu nost daudz triviālāk. Apskatījos simbolu RGB krāsu, un tad pa visiem pikseļiem taisīju ciklu un skatījos vai viņa max par 2 neatšķirās no tās defaultās krāsas, ja nē, tad tas ir rūtiņas/burta pikselis, ja atšķirās, tad nav - tas ir fons.

 

Rūtiņas ņemot nost visā garumā, var baigie caurumi pazust no burtiem/cipariem.

 

Neironu tīklu pats taisīju (diezgan primitīvu, speciāli šim gadījumam). Vienkāršs vienslāņa perceptons un, laikam arī biju eksperimentējis ar kohonena pašapmācošo tīklu, bet ar to mazāki panākumi, jo tie simboli šausmīgi izkropļoti bija pēc rūtiņu noņemšanas.

Link to comment
Share on other sites

sanjeemu error : Resource id #2

Nu loģiski, ka resource id#2, man piemēram ir #4. Tak palasi manuālī kā bildes vajag izvadīt! Ne jau ar echo, bet ar imagepng/imagegif/imagejpg!

 

Un tu domā, ka savā fontā uzdrukājot to 5, tu varēsi salīdzināt ar viņu bildēm? Nezinu gan vai tā varēs, bet nu mēģināt jau var!

Edited by bubu
Link to comment
Share on other sites

Es pikseļus nolasu tā kā rādīts php manuāļī:

<?php
$rgb = ImageColorAt($im, 100, 100);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>

 

A krāsot pikseļus es nekrāsoju, domāju tas nebūs pārāk ātri. Es visu bildi lasu savā - boolean - masīvā.

Link to comment
Share on other sites

man ienaaca viena ideja paraataa. vareetu tai bildiitei (kodam)

nolasiit auksheejo striipu, kas ir pashaa aukshaa.

un izmeeriit cik vinja liela. un tad novaakt sviitras horizontaal un vertikaali, kuras ir tik platas kaa auksheejaa, jo vinjas ir vienaadaa platumaa.

kaac var ieteikt f-cijas ar kuraam to izdariit?

kaut ko ar ko saakt...

Link to comment
Share on other sites

Tās horizontālās un vertikālās svītras ir ik pa 10 pikseļiem. Ja grib triviāli viņas aizvietot ar fona krasu, dari apmēram šitā (tiešām nesaprotu, kas te ko pašam to neizdomāt):

 // $width - bildes platums, $height - bildes augstums

 // horizontālās restes
 for ($y=$augsejas_sviitras_rindinja; $y<$height; $y+=10)
 {
    for ($x=$0; $x<$width; $x++)
    {
      // bildei pozīcijā $x un $y uzliec pikseli fona krāsā
    }
 }

 // vertikālās restes
 for ($x=$kreisaas_sviitras_kolonna; $x<$width; $x+=10)
 {
    for ($y=$0; $y<$height; $y++)
    {
      // bildei pozīcijā $x un $y uzliec pikseli fona krāsā
    }
 }

 

Vienīgi ko tu domāji ar "vareetu tai bildiitei nolasiit auksheejo striipu, kas ir pashaa aukshaa. un izmeeriit cik vinja liela" gan nesapratu.

Edited by bubu
Link to comment
Share on other sites

to es domaaju taa, ka tam kodam pashaa aukshaa ir horizontaala sviitra.

un taaa neshkeerso nevienu burtu vai ciparu.

tad vareetu nolasiit to striipu. un tad aizstaat horizontaalaas un vertikaalaas striipas kuras ir noteiktaa platumaa ar fona kraasu.

meeginaashu kaut ku uzmeikot

Link to comment
Share on other sites

Me reku no rīta padomāja un izdomāja kaut ko šādu:

http://paste.php.lv/1188

 

Speciāli beigās ūztaisīju bildi lielāku, lai parādītu, ka dažviet burtos paliek "tukšumi", kas varētu OCRam radīt problēmas.

 

Šo probzu var apiet, ja bildi no sākuma padarīt par divkrāsainu http://paste.php.lv/1189. Bet tur atkal imagecolorclosest() dažviet melo.

Vajadzētu izštukot kaut kādu regulējamo "melnbaltinātāju", lai varētu notjūnot pāreju robežu no vienas krāsas uz otru.

 

Kāds varētu uzinstalēt uz sava linuša gocr/jocr komandrindas OCR un pamēģināt kāds rezultāts iznāk.

 

NB abos kodos bilde reizēm nogļuko, jo kāda no image* funkcijām atgriež nepareizu vērtību (vismaz man tā škiet). Varbūt varētu ārstēt ieliekot sleep pa vidu.

Link to comment
Share on other sites

Neironu tīklu pats taisīju (diezgan primitīvu, speciāli šim gadījumam). Vienkāršs vienslāņa perceptons un, laikam arī biju eksperimentējis ar kohonena pašapmācošo tīklu, bet ar to mazāki panākumi, jo tie simboli šausmīgi izkropļoti bija pēc rūtiņu noņemšanas.

 

Ar vienslaanja perceptronu toch vareetu buut par maz, jo vienslaanjnieki ir baigi vaajie. Vajag daudzslaanju. Bet tie savukaart bremzee :/

Link to comment
Share on other sites


×
×
  • Create New...