Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Вниз

Обработка изображения / Распознование / Нейросети   Найти похожие ветки 

 
altex   (2007-01-02 16:52) [0]

Нужна помощь такая вот помощь:
сразу скажу пишу програмки для распознавания изображений в некоторых онлайн играх, где что-бы что-то получить надо вводить код.. ничего криминального.
Всегда пользовался исходником программы neuro40, предварительно обрабатывал картинку, приводило к ч/б виду разбивал по цыферкам, удалял лишний шум и 95% удачного распознования, но вот попались такие вот картинки
хттп://smartphones.net.ru/tt/1.bmp  (там много 1->20.bmp), сколько я над ними не парился.. никак их не могу привести к нормальному виду.. что уже только не делал, может у кого есть какие-нибудь идеи, что тут можно придумать?


 
Vovan #2   (2007-01-02 17:25) [1]

Выделить четыре несвязные зоны яркости, отличающейся от фоновой.
Проанализировать шум и на основе этого всего отгемнетировать буквы.


 
altex   (2007-01-02 21:54) [2]

Эм.. а это Как??? :)


 
vidiv ©   (2007-01-02 22:34) [3]


>  такие вот картинки
> хттп://smartphones.net.ru/tt/1.bmp  (там много 1->20.bmp),
>  

даа.. тяжко приется тебе =)


 
Rembo   (2007-01-02 22:51) [4]

Они косо написаны. Это анрил!


 
altex   (2007-01-02 23:12) [5]

ну допустим выровнять их впринцепи возможно... тут впринцепи только угол определить и стандартными методами повернуть изображение... нада както определить границу букв.. т.е. избавится от фона.


 
altex   (2007-01-02 23:12) [6]

ну допустим выровнять их впринцепи возможно... тут впринцепи только угол определить и стандартными методами повернуть изображение... нада както определить границу букв.. т.е. избавится от фона.


 
Vovan #2   (2007-01-02 23:17) [7]

Зачем выравнивать? Есть же методы разпознавания, инвариантные к поворотам. В некоторых проектах я распознавал не поворачивая и даже не масштабируя.

Здесь задача - хорошая сегментация. Плохую сделать здесь довольно просто, но получится символ с довольно рваным контуром. Хотел вот попробовать что-нибудь с картинкой, да времени нет.


 
flaxe ©   (2007-01-02 23:49) [8]

Не такую считать просто не возможно!!!


 
Vovan #2   (2007-01-02 23:56) [9]

Вот, пять минут кодинга без всяких теорий по мотивам [1]:
http://keep4u.ru/full/070102/4556bc3ed1d604aa29.png
(находит первую светлую область)


 
altex   (2007-01-03 00:19) [10]

Ёлки Палки! Поделись Алгоритмом :) Please ^)


 
Nic ©   (2007-01-03 00:24) [11]

Я пробовал область :) Оно очень интересно. Дошёл до выравнивания бланка под прямым углом и разобрал несколько алгоритмов распознавания символов. Потом, правда, забил на это дело так как на горизонте появились более денежные проекты.


 
Nic ©   (2007-01-03 00:24) [12]

До нейросетей дойти не успел.


 
Vovan #2   (2007-01-03 00:33) [13]


procedure TformMain.btnProcessClick(Sender: TObject);
var
 W, H, x, y: Integer;
 Br: Byte;

 procedure Extract(B: TBitmap32; x1, y1: Integer; Bright: Byte);
 begin
   if (x1 >= 0) and (y1 >= 0) and (x1 < W) and (y1 < H) then
    begin
     if (B.Pixels[x1,y1] <> clBlack32) and
       (Abs(RedComponent(imgInput.Bitmap[x1,y1]) - Bright) < 50) then
      begin
       B.Pixels[x1,y1] := clBlack32;
       Extract(B, x1+1, y1, Bright);
       Extract(B, x1-1, y1, Bright);
       Extract(B, x1, y1+1, Bright);
       Extract(B, x1, y1-1, Bright);
      end;
    end;
 end;

begin
 W := imgInput.Bitmap.Width;
 H := imgInput.Bitmap.Height;
 for y := 0 to H-1 do
  for x := 0 to W-1 do
   begin
     Br := RedComponent(imgInput.Bitmap.Pixels[x,y]);
     if Br > 190 then
      begin
       Extract(imgSymbol1.Bitmap, x, y, Br);
       imgSymbol1.Invalidate;
       Exit;
      end;
   end;
end;


 
altex   (2007-01-03 01:03) [14]

Vovan #2, СпасиБА ТЕБЕ БААЛЬШОЕ!!! Это сдвинет меня с мертвой точки!


 
altex   (2007-01-03 23:15) [15]

Вот после нескольких способов обработки получается у меня вот такое вот:
http://smartphones.net.ru/tt2/1.bmp  -> 9.bmp
И вот теперь сижу я и не знаю что придумать с разделением на цыфры, единственное что у цыфр есть более менее определенные рамки в которых она располагается.. определенного центра помойму нет, вращается абсолютно рандомно, что можно придумать???
Единственное что мне пока приходит в голову.. может просто взять несколько вариантов каждой цыфры и вращать её "поверх" исходной, пока не найдем наибольшее сходство, стоит копать в эту сторону??


 
Vovan #2   (2007-01-03 23:49) [16]

>Единственное что мне пока приходит в голову.. может просто взять несколько вариантов каждой цыфры и вращать её "поверх" исходной, пока не найдем наибольшее сходство, стоит копать в эту сторону??

Я так делал. Вращал не всю цифру, а её скелет. Нормально работало.

Но всё равно постарайся сегментировать по-максимальному. На некоторых каринках у тебя буквы полностью отдельны от других. Некоторые буквы в оригинале по яркости отличались от соседей (белые против чёрных).


 
Тиммммм   (2007-01-05 16:23) [17]

altex свяжись со мной, ася 4847457



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.042 c
2-1168690267
AlexanderMS
2007-01-13 15:11
2007.01.28
Как ProgressBar поместить на одну из панелей StatusBar?


2-1168426545
Kcor
2007-01-10 13:55
2007.01.28
DateTimePicker


2-1168706574
ice321i
2007-01-13 19:42
2007.01.28
Отчет в не правильное кодировке


15-1168259090
Extar
2007-01-08 15:24
2007.01.28
И снова здравствуйте


15-1167484573
Slider007
2006-12-30 16:16
2007.01.28
С днем рождения ! 30 декабря





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский