powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Быстро узнать наличие малого рисунка в большом?
8 сообщений из 8, страница 1 из 1
Быстро узнать наличие малого рисунка в большом?
    #39943196
SDA_H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! Для онлайн игры.
Программа в цикле по таймеру каждые 2-4 секунды нажимает клавишу(активизируя игровой сканер).Если обнаружен противник, он
отображается в колонке грида как определенный ч.б значёк

Как быстро можно сравнить небольшой рисунок -часть screen short'а (пистограмма 1см x 1см - значёк ) с шаблоном такого же размера?
И как это быстрее сделать: scanline, попиксельное сравнение, и т.п.
Нужно ли переводить рисунки в черно белые для быстрого сравнения или сравнивать напрямую?
Screenshort делается в чикле каждые 2-4 секунды
...
Рейтинг: 0 / 0
Быстро узнать наличие малого рисунка в большом?
    #39943215
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тема интересная, решил тоже погуглить и вот что нашлось:

так гуглилfind sub-image delphi

Finding a Bitmap contained inside another Bitmap
https://www.codeproject.com/Articles/38619/Finding-a-Bitmap-contained-inside-another-Bitmap

fast finding of small image in a bigger image
https://stackoverflow.com/questions/3074771/fast-finding-of-small-image-in-a-bigger-image
...
Рейтинг: 0 / 0
Быстро узнать наличие малого рисунка в большом?
    #39943218
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще отхакать эту игру и перехватить событие добавления противника в грид.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Быстро узнать наличие малого рисунка в большом?
    #39943246
SDA_H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Scanline вроде сравнивает быстрее. Нашел:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Type
  TRGB=record
  b,g,r : byte;
  end;
 
    ARGB=array [0..1] of TRGB;
    PARGB=^ARGB;
    PRGB = ^TRGB;
 
function CompareImages(A,B : TBitmap) : Boolean;
var
  i,j : integer;
  p1,p2 : PARGB;
begin
 Result:=false;
 if A.Width<>B.Width then exit;
 if A.Height<>B.Height then exit;
 for i:=0 to A.Height-1 do
 begin
  p1:=A.ScanLine[i];
  p2:=B.ScanLine[i];
  for j:=0 to A.Width-1 do
  begin
   if not ((p1[j].r=p2[j].r) and (p1[j].g=p2[j].g) and (p1[j].b=p2[j].b)) then exit;
  end;
 end;
 Result:=true;
end;
...
Рейтинг: 0 / 0
Быстро узнать наличие малого рисунка в большом?
    #39943251
Фотография Virtual Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SDA_H,

А для решения вашей задачи не достаточно ли сравнивать один пиксель большего изображения на наличие?
Для разных мелких значков один раз вычислить координаты закрашенных пикселей, не?
...
Рейтинг: 0 / 0
Быстро узнать наличие малого рисунка в большом?
    #39943620
SDA_H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неа, overview изменчива - как жизнь)
...
Рейтинг: 0 / 0
Быстро узнать наличие малого рисунка в большом?
    #39943635
...
Рейтинг: 0 / 0
Быстро узнать наличие малого рисунка в большом?
    #39943637
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Няшык, йоу.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Быстро узнать наличие малого рисунка в большом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]