Что нового

Поиск элемента по пикселям

mmalinovskij

Новичок
Сообщения
4
Репутация
0
Здравствуйте, у меня вопрос, мне нужно найти "искомый текст" на странице "Скрин страницы" Я пробовал искать с помощью "ImageSearch" но он ничего не находил, я так понял что данный инструмент работает не стабильно, принял решение искать по группе пикселей, с помощью GPT юыл написан такой скрипт "
AutoItSetOption("PixelCoordMode", 0)
AutoItSetOption("MouseCoordMode", 0)

Local $x_start = 614
Local $x_end = 660 - 4 ; 5 пикселей по X
Local $y_start = 325
Local $y_end = 1125

Local $tolerance = 15

; Твой шаблон из 5 RGB-цветов
Local $patternRGB[5] = [ _
0xF0F2F5, _
0xBEC1C5, _
0x73767A, _
0xE0E2E5, _
0xF0F2F5 _
]

; Преобразуем в BGR
Local $patternBGR[5]
For $i = 0 To 4
$patternBGR[$i] = RGBtoBGR($patternRGB[$i])
Next

Func RGBtoBGR($hexColor)
Local $r = BitShift($hexColor, 16) And 0xFF
Local $g = BitShift($hexColor, 8) And 0xFF
Local $b = $hexColor And 0xFF
Return BitOR(BitShift($b, 16), BitOR(BitShift($g, 8), $r))
EndFunc

Func ColorsMatch($c1, $c2, $tol)
Local $r1 = BitAND($c1, 0xFF)
Local $g1 = BitAND(BitShift($c1, 8), 0xFF)
Local $b1 = BitAND(BitShift($c1, 16), 0xFF)

Local $r2 = BitAND($c2, 0xFF)
Local $g2 = BitAND(BitShift($c2, 8), 0xFF)
Local $b2 = BitAND(BitShift($c2, 16), 0xFF)

Return Abs($r1 - $r2) <= $tol And _
Abs($g1 - $g2) <= $tol And _
Abs($b1 - $b2) <= $tol
EndFunc

Local $found = False

MsgBox(64, "Поиск", "Ищем шаблон из 5 горизонтальных пикселей...")

For $y = $y_start To $y_end Step 2
For $x = $x_start To $x_end Step 2
Local $match = True

For $i = 0 To 4
Local $pxColor = PixelGetColor($x + $i, $y)
If Not ColorsMatch($pxColor, $patternBGR[$i], $tolerance) Then
$match = False
ExitLoop
EndIf
Next

If $match Then
MouseMove($x + 2, $y, 10) ; наведение в центр шаблона
MsgBox(64, "Найдено", "Пиксельный шаблон найден на X=" & $x & ", Y=" & $y)
$found = True
ExitLoop 2
EndIf
Next
Next

If Not $found Then
MsgBox(48, "Не найдено", "Шаблон не найден в указанной области.")
EndIf

"


который так же не выполняет нужные действия, как можно исправить ситуацию?
 

Вложения

  • Искомый текст.png
    Искомый текст.png
    1.8 КБ · Просмотры: 6
  • Скрин страницы.png
    Скрин страницы.png
    381.6 КБ · Просмотры: 6

All2khoff

Продвинутый
Сообщения
398
Репутация
72
А задача по итогу то какая?
Нужно распознование текста? тогда нужно копать в сторону OCR на форуме есть несколько тем.
Если нужно искать какието конкретные данные то парсинг страницы будет более подходящим решением.
 
Автор
mmalinovskij

mmalinovskij

Новичок
Сообщения
4
Репутация
0
А задача по итогу то какая?
Нужно распознование текста? тогда нужно копать в сторону OCR на форуме есть несколько тем.
Если нужно искать какието конкретные данные то парсинг страницы будет более подходящим решением.
Я уже пробовал tesseract но ничего не находит, если есть опыт я готов оплатить помощь, телеграм для связи @magnat_agenc
 

SealAlbinos

Продвинутый
Сообщения
162
Репутация
59
Я уже пробовал tesseract но ничего не находит, если есть опыт я готов оплатить помощь, телеграм для связи @magnat_agenc
вы бы лучше конкретно расписали, чего хотите добиться вашими действиями в конечном итоге
найти текст, а что дальше?
 

All2khoff

Продвинутый
Сообщения
398
Репутация
72
В итоге нужно кликнуть по элементу
Вот вы в голове у себя провели диалог... с аргументами доводами и остальными признаками разумной беседы... в итоге пришли к короткому выводу.,
но мы у вас в голове не были, нам маловато просто короткого вывода... а хрустальный шар уж звиняйте помутнел и треснул от слишком частого использования.
Внятно можете описать цель вашего всего плана?
условно:
я хочу на сайте таком то, проверить такие то данные и если они есть то "это", если нет, то "это"
или
открыть сайт, вбить в строку "это" получить результат, сохранить "сюда"
 
Верх