Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка изображения для распознания, По данному скрипту генерации 
:(
    Опции темы
Lightevil
  Дата 7.1.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.4.2007

Репутация: нет
Всего: нет



Доброе время суток, ребят

Передо мной встал вопрос написать распознавание изображений по имеющемуся скрипту их генерации, задача довольно интересная.. Но столкнулся с несколькими проблемами и решил спросить совета у специалистов - может кто сталкивался с этим здесь smile 
Вообщем хотел бы услышать советы или предложения по реализации...

Изображение генерит ниже приведенный скрипт:

Код

function ShowImage($text)

{

  $im = imagecreatetruecolor(90, 40);

  $black = imagecolorresolve($im, 128, 128, 128);


  ImageFill($im, 0, 0, $black);


  $fonts= array("arial.ttf", "ariblk.ttf", "bkant.ttf", "gothic.ttf", "cour.ttf", /*"georgia.ttf",*/ "impact.ttf", "latha.ttf", "mangal.ttf", "tahoma.ttf", "times.ttf", "trebuc.ttf", "tunga.ttf", "verdana.ttf");

  $qnFonts = count($fonts)-1;


  $pathFonts = "/home/fonts/";



  for ($i = 0; $i < 4; $i++ )

  {

    if ( Coin() )

    {

      $colR = mt_rand(80, 100);

    }

    else

    {

      $colR = mt_rand(165, 185);

    }



    $colG = $colR;

    $colB = $colR;



    $color = imagecolorresolve($im, $colR, $colG, $colB);



    $fontName = $pathFonts . $fonts[mt_rand(0, $qnFonts)];



    if ( Coin() )

    {

      $rot = mt_rand(-40, -25);

    }

    else

    {

      $rot = mt_rand(25, 40);

    }



    $maxSize = 29;



    $size = mt_rand(29, $maxSize);



    $num = $text{$i};


    $arR = imagettfbbox($size, $rot, $fontName, $num);



    $xC = ($arR[4] + $arR[0]) / 2;

    $yC = ($arR[5] + $arR[1]) / 2;



    $xU = $arR[4];

    $yU = $arR[5];

    //////////////////////////



    $coef = 25;

    $offsX = ($maxSize - $size) / ( ( Coin() ) ? ($coef) : (-$coef) );



    $offsY = ($maxSize - $size) / ( ( Coin() ) ? ($coef) : (-$coef) );





    $x = (15 + $i*20) - ($xU - $xC) + $offsX;

    $y = 20 - ($yU - $yC) + $offsY;



    $comp = mt_rand(0, 50);

    $color_shadow = imagecolorresolve($im, $comp, $comp, $comp);



    imagettftext($im, $size, $rot, $x+2, $y+2, $color_shadow, $fontName, $num);

    imagettftext($im, $size, $rot, $x, $y, $color, $fontName, $num);

  }


  for($x = 0; $x < 90; $x++ )

  {

    for($y = 0; $y < 40; $y++ )

    {

      $col = imagecolorat($im, $x, $y);// mt_rand(110, 140);//, mt_rand(0, 255), mt_rand(0, 255)



      $arcol = imagecolorsforindex($im, $col);

      $sub = mt_rand(-25, 25);



      imagesetpixel($im, $x, $y,

        imagecolorresolve($im, $arcol["red"] + $sub, $arcol["green"] + $sub, $arcol["blue"] + $sub ) );



    }

  }



  ImagePng($im);

  ImageDestroy($im);

}



function Coin()

{

  return (mt_rand(0, 99) % 2) == 0;

}



Заранее спасибо smile
PM MAIL   Вверх
MuToGeN
Дата 8.1.2009, 03:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 4
Всего: 32



Решается только нейросетями ИМХО. Т.е. лучше курить доки по ИИ.


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
skyboy
Дата 8.1.2009, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



если бы не цветовой шум и картинка без искажений - ещё можно было бы обойтись поиском по опорным точкам.
А так этот вопрос решится "чистым" распознаванием образов, что делать на РНР не то, чтоб невозможно, но нерационально долго и полученное будет уж больно тормознутым(по тайм-ауту будет почти наверняка вылетать).
Так что выбери другой ЯП. или ищи уже готовое решение, которому можно будет скормить картинку через аргументы командной строки.
PM MAIL   Вверх
Lightevil
Дата 8.1.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.4.2007

Репутация: нет
Всего: нет



Ну нейронные сети это хорошо, но замуты там немаленькие smile



skyboy
По поводу шумов и искажений - это решаемо. То бишь я добивался гламурненько чистой картинки.. Таймаут меня не интересует smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0701 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.