Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2013, 17:19   #1
Entropy
 
Аватар для Entropy
 
Регистрация: 09.04.2013
Сообщений: 5
По умолчанию Распознавание чисел по пикселям

Уважаемые программисты, не поможете разобраться с кодом? Замутил я распознавание чисел по 4 пикселям во флеш (интернет-казино) для сбора статы. Числа распознаются корректно, но вот программа через некоторое время после загрузки зависает. Если не лень, поправьте код: я не программист, только знакомлюсь с делфи, так что извините за "колхозный код" без циклов и массивов.
Может вообще весь код выкинуть и не морочить себе голову?

Код:
//определение пикселей (на числах)
procedure TForm1.getColor;
begin
//1
  DC:=GetDC(0);
  Pix1a:=GetPixel(DC, 926{X}, 99{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix1b:=GetPixel(DC, 929{X}, 97{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix1c:=GetPixel(DC, 931{X}, 103{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix1d:=GetPixel(DC, 931{X}, 107{Y});
  ReleaseDC(0, DC);

//2
  DC:=GetDC(0);
  Pix2a:=GetPixel(DC, 926{X}, 96{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix2b:=GetPixel(DC, 931{X}, 104{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix2c:=GetPixel(DC, 929{X}, 106{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix2d:=GetPixel(DC, 927{X}, 108{Y});
  ReleaseDC(0, DC);
   .....

//действия
  //1
  if (GetRValue(Pix1a)=4) and (GetGValue(Pix1a)=52) and (GetBValue(Pix1a)=28)
  and (GetRValue(Pix1b)=4) and (GetGValue(Pix1b)=52) and (GetBValue(Pix1b)=28)
  and (GetRValue(Pix1c)=4) and (GetGValue(Pix1c)=52) and (GetBValue(Pix1c)=28)
  and (GetRValue(Pix1d)=4) and (GetGValue(Pix1d)=52) and (GetBValue(Pix1d)=28)
  and (GetRValue(Pixs)=27) and (GetGValue(Pixs)=27) and (GetBValue(Pixs)=64)
   then begin
  Memo1.Lines.Insert(0,'1')

  //2
  end else
  if (GetRValue(Pix2a)=4) and (GetGValue(Pix2a)=52) and (GetBValue(Pix2a)=28)
  and (GetRValue(Pix2b)=4) and (GetGValue(Pix2b)=52) and (GetBValue(Pix2b)=28)
  and (GetRValue(Pix2c)=4) and (GetGValue(Pix2c)=52) and (GetBValue(Pix2c)=28)
  and (GetRValue(Pix2d)=4) and (GetGValue(Pix2d)=52) and (GetBValue(Pix2d)=28)
  and (GetRValue(Pixs)=27) and (GetGValue(Pixs)=27) and (GetBValue(Pixs)=64)
 then begin
  Memo1.Lines.Insert(0,'2')

  //3
  end else
   .....

end else begin
   sleep(2000);
   Start.Perform(WM_LBUTTONDOWN, 0, 0); Start.Perform(WM_LBUTTONUP, 0, 0);
  end;
   Start.Perform(WM_LBUTTONDOWN, 0, 0); Start.Perform(WM_LBUTTONUP, 0, 0);
end;
Вложения
Тип файла: rar _color numbers.rar (92.2 Кб, 10 просмотров)

Последний раз редактировалось Entropy; 21.04.2013 в 18:00.
Entropy вне форума Ответить с цитированием
Старый 21.04.2013, 18:45   #2
Entropy
 
Аватар для Entropy
 
Регистрация: 09.04.2013
Сообщений: 5
По умолчанию

Может надо было так?:

Код:
procedure TForm1.getColor;
begin
//color button spin
  DC:=GetDC(0);
  Pixs:=GetPixel(DC, 1003{X}, 581{Y});
  ReleaseDC(0, DC);


//1
  DC:=GetDC(0);
  Pix1a:=GetPixel(DC, 926{X}, 99{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix1b:=GetPixel(DC, 929{X}, 97{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix1c:=GetPixel(DC, 931{X}, 103{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix1d:=GetPixel(DC, 931{X}, 107{Y});
  ReleaseDC(0, DC);

//запись в мемо
  if (GetRValue(Pix1a)=4) and (GetGValue(Pix1a)=52) and (GetBValue(Pix1a)=28)
  and (GetRValue(Pix1b)=4) and (GetGValue(Pix1b)=52) and (GetBValue(Pix1b)=28)
  and (GetRValue(Pix1c)=4) and (GetGValue(Pix1c)=52) and (GetBValue(Pix1c)=28)
  and (GetRValue(Pix1d)=4) and (GetGValue(Pix1d)=52) and (GetBValue(Pix1d)=28)
  and (GetRValue(Pixs)=27) and (GetGValue(Pixs)=27) and (GetBValue(Pixs)=64)
   then begin
  Memo1.Lines.Insert(0,'1')

  end else
//2
  DC:=GetDC(0);
  Pix2a:=GetPixel(DC, 926{X}, 96{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix2b:=GetPixel(DC, 931{X}, 104{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix2c:=GetPixel(DC, 929{X}, 106{Y});
  ReleaseDC(0, DC);

  DC:=GetDC(0);
  Pix2d:=GetPixel(DC, 927{X}, 108{Y});
  ReleaseDC(0, DC);

//запись в мемо
  if (GetRValue(Pix2a)=4) and (GetGValue(Pix2a)=52) and (GetBValue(Pix2a)=28)
  and (GetRValue(Pix2b)=4) and (GetGValue(Pix2b)=52) and (GetBValue(Pix2b)=28)
  and (GetRValue(Pix2c)=4) and (GetGValue(Pix2c)=52) and (GetBValue(Pix2c)=28)
  and (GetRValue(Pix2d)=4) and (GetGValue(Pix2d)=52) and (GetBValue(Pix2d)=28)
  and (GetRValue(Pixs)=27) and (GetGValue(Pixs)=27) and (GetBValue(Pixs)=64)
   then begin
  Memo1.Lines.Insert(0,'2')

  end else
//3
  .....

Последний раз редактировалось Entropy; 21.04.2013 в 18:50.
Entropy вне форума Ответить с цитированием
Старый 21.04.2013, 19:08   #3
Entropy
 
Аватар для Entropy
 
Регистрация: 09.04.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Entropy Посмотреть сообщение
Может надо было так?:
Все равно зависает
Entropy вне форума Ответить с цитированием
Старый 21.01.2014, 09:38   #4
egor1000000
Новичок
Джуниор
 
Регистрация: 21.01.2014
Сообщений: 1
По умолчанию распознование чисел

Сбрось полностью исходник я тебе его поправлю как надо
и что надо добавлю помогу на скайп : alexandr051979
egor1000000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрашивание Image по пикселям. A-IX-2 Мультимедиа в Delphi 16 06.06.2011 09:09
распознавание чисел Alekce Microsoft Office Excel 6 25.11.2010 23:58
Как разобрать картинку по пикселям? Probapera Microsoft Office Excel 7 29.10.2010 16:04
Регион по пикселям картинки. Alex Cones Общие вопросы Delphi 0 18.09.2010 14:45
Распознавание четных чисел Demigoddess Общие вопросы C/C++ 3 11.03.2009 21:43