![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго дня товарищи. Помогите пожалуйста. Нужно в окне программы найти картинку розмером до 50х50 пикселей.
|
#2
|
||||
|
||||
![]() Ну так поыщи картинку с розмером. Сравниваешь пиксели по одному. Ищешь верхний левый угол картинки, начиная с этого места сравниваешь все соответствующие пиксели и получаешь своего игробота.
А вот если надо найти ПОХОЖУЮ картинку, которая немного отличается (например, цветами, даже если на глаз этого не заметно) - открываем учебники по распознаванию изображений и нейросети и учим всю их математику. Хотя можно и без них, но это еще сложнее. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 24.12.2013 в 21:43. |
#3
|
|||
|
|||
![]() Можете пожалуйста пример
вот я пробувал Код:
Var Bmp : TBitmap; DC : HDC; Begin Bmp := Tbitmap.Create; Bmp.Height := Screen.Height; Bmp.Width := Screen.Width; DC := GetDC(0); Bitblt(Bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SRCCOPY); ReleaseDC(0, DC); for i:=0 to screen.Width div scale do for j:=0 to screen.Height div scale do begin if bmp.Canvas.Pixels[i,j]=clRed then ....... else ...... end; bmp.free; end; Последний раз редактировалось Noooob, 24.12.2013 в 22:59. |
#4
|
||||
|
||||
![]() Могу, только уверен, что ты не поймешь, если не понял описание.
Делать нечего, поэтому напишу. Вот тебе вариант "в лоб": Код:
found := false; for j := 0 to height - tmHeight - 1 do begin for i := 0 to witdh - tmWidth - 1 do begin if screenshot[i,j] = template[0,0] then begin found := true; for k := 0 to tmHeight - 1 do begin for l := 0 to tmWidth - 1 do if screenshot[i + l, j + k] <> template[l,k] then begin found := false; break; end; if not found then break; end; if found then begin // нашли break; end; end; end; if found then break; end; jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
![]() Спасибо большое. Насколько я понял ето уже сравнениє изображений, можно полный код(жилательно начиная с собития BottonClick)?
|
#6
|
||||
|
||||
![]() Это поиск двумерного массива в другом двумерном массиве. Для тебя эти массивы - изображения. А получение картинки и остальной код юнита - это уже как-нибудь сам, примеров тысячи. Мне не настолько нечего делать, чтоб запускать IDE и писать и компилить чужие программы целиком. Может кто другой напишет. А может нет.
jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 25.12.2013 в 18:16. |
#7
|
|||
|
|||
![]() ещо вопрос: а можно организовать поиск картинки в компоненте к примеру Web Browser?
|
#8
|
|||
|
|||
![]() Цитата:
Например, "срисовать" окно в картинку и там искать. ЗЫ. По предидущему примеру. У Canvas есть свойство Pixels[], возвращающее цвет точки в соотв. координатах. |