1 (изменено: baplo, 2018-05-17 05:07:42)

Тема: AHK: Преобразование информации с ImageSearch в текстовый документ.

Здравствуйте!
У меня есть очень интересная задумка, но я не знаю как её реализовать.
Чтобы было понятнее, я объясню подробнее:

Представим что в какой то программе или игре, есть статистика в цифрах, создам для примера эту картинку:
https://i.imgur.com/zn1BhKa.png
Представьте что это статистика в программе.
Вытащить её никак нельзя, но что если научить макрос, искать каждую отдельную цифру на экране, и если эта цифра найдена, то записывать её в текстовый документ и так до тех пор, пока не запишутся все цифры от 0 до 9.
Например на картинке число:
https://i.imgur.com/xJ3bjfR.png

Как мне получить это число, при помощи ImageSearch в текстовом документе?

Возможно ли как то это реализовать?


Знаю что вначале нужно каждую цифру создать в отдельном файле, 0.bmp, 1.bmp и тд, но вот как научить макрос записывать в Txt информацию которую он прочитал?

Примерно как это должно выглядеть:
CapsLock::

ImageSearch, xp0, yp0, 0, 0, 3000, 3000, *TransNBlack 0.bmp ; Ищет цифру 0 на экране.
If xp0 > 0 ; если нашел, то  добавляем цифру 0 в текстовый документ 123.txt
{
0 := 0
FileAppend, %0% `n , 123.txt
}
Return

2

Re: AHK: Преобразование информации с ImageSearch в текстовый документ.

Как я понял место поиска статичное. Вышеприведенное число 7-значное.

Примерный алгоритм:
1. Определяем координаты поисковой зоны для каждой цифры.
2. становимся на координату самую правую. ищем в ней цифру.
3. Нашли цифру - заносим ее в переменную digit_1.
4. Переходим на следующую координату (стоящую левее) в списке, ищем цифру - заносим значение в digit_2.
5. Когда цифры закончились - производим операцию  конкатенации и заносим результат в переменную number.
6. Производим запись значения переменной number в файл.
Переход по координатам сделать циклом (который должен обрываться при первом неудачном поиске). Также нужна специальная функция для поиска цифры.

Можно ещё подключить библиотеку распознавания и распознавать с помощью неё. Но при таких четких цифрах это излишне.

Мои разработки: MyTetra Integrator

3

Re: AHK: Преобразование информации с ImageSearch в текстовый документ.

https://autohotkey.com/boards/viewtopic.php?t=36047

4 (изменено: serzh82saratov, 2018-05-17 16:27:22)

Re: AHK: Преобразование информации с ImageSearch в текстовый документ.

Если фон и и цифры статичны, без меняющихся оттенков, и одного размера, то предполагаю что ImageSearch будет шустрее. Была такая тема.


NumSearch(x1, y1, x2, y2, pref="")  {
	Loop % 10 . Found := []
	{
		Num := A_Index-1, xS := x1
		Loop
		{
			ImageSearch, xF, , xS, y1, x2, y2, %pref%%Num%.png
			If ErrorLevel
				Break
			Found[xF] := Num, xS := xF+1
		}
	}
	For K, V in Found
		Ret .= V
	Return Ret
}
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

5

Re: AHK: Преобразование информации с ImageSearch в текстовый документ.

serzh82saratov пишет:

Если фон и и цифры статичны, без меняющихся оттенков, и одного размера, то предполагаю что ImageSearch будет шустрее. Была такая тема.


NumSearch(x1, y1, x2, y2, pref="")  {
	Loop % 10 . Found := []
	{
		Num := A_Index-1, xS := x1
		Loop
		{
			ImageSearch, xF, , xS, y1, x2, y2, %pref%%Num%.png
			If ErrorLevel
				Break
			Found[xF] := Num, xS := xF+1
		}
	}
	For K, V in Found
		Ret .= V
	Return Ret
}

Как раз таки, цифры перемещаются, в зависимости от положения курсора, при наведение на объект:
Навелся на объект  - вылезла информация, в зависимости от того, как двигается курсор - двигается и табличка с информацией.
Я хочу сделать так:
1. Навелся
2. Нажал кнопку F1
3. Имайджсеарш находит рамку с информацией
4. В рамке находит строчки с цифрами и их записывает в текстовый документ.

Если так сложно с цифрами, то про поиск слов вообще геморой выходит...

6

Re: AHK: Преобразование информации с ImageSearch в текстовый документ.

Ну координаты надо задавать относительно рамки, так это и работает.
Если шрифт одинаков, то вместо 10 картинок с цифрами, нужно указать картинки с каждой буквой в разном регистре, тогда может OCR окажется быстрее. Я как то пользовался им, но он не всегда точно определял текст даже на "простом" шрифте.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).