Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » PixelSearch - Вопросы относительно мироздания

Ответить
Настройки темы
PixelSearch - Вопросы относительно мироздания

Аватара для Belfigor

Пользователь


Сообщения: 87
Благодарности: 11

Профиль | Отправить PM | Цитировать


Мы с приятелем собираемся переписать функцию пикселсеарч. Подскажите пожалуйста, в какую длл нужно обращаться, при попытке выяснить какого цвета пиксель она рисует на экране в заданых координатах?

Предпосылки такого порыва таковы:
когда мы указываем шейд пиксельсерчу - он начинает шагать по каналам в каждом элементе цвета (отдельно в р, отдельно в г, отдельно в б) или сразу во всех трёх?
т.е. получается. она может работать как вложенный, один в другой цикл фор некст на пиксельгетколор, и сличение с нужными параметрами.
А может работать вообще хз как.
Как это работает?
В любом случае, пока - это не удовлетворяет нашим потребностям в скорости работы. Мы хотим ускорить работу и переписать сам пиксель серч а при необходимости и пиксельгеткалор

Отправлено: 03:19, 08-08-2009

 

Аватара для Belfigor

Пользователь


Сообщения: 87
Благодарности: 11

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: bmp Untitled-2.bmp
(824 байт, 23 просмотров)

Постараюсь объяснить более доступно что у нас есть и зачем нам нужна альтернатива пиксель гет калору.
У нас есть допустим поле 20х20 пикселейна этом поле рисунок, он тоже 20х20 пикселей Нам не надо искать где он может быть, мы уже знаем где он. Но на этом 20х20 поле может быть порядка сотни различных рисунков с уникальным набором пикселей каждый.

Мы сканируем все эти пиксели составляя разметку их расположения. Далее эту разметку мы сравниваем с базой уже имеющихся и таким образом понимаем что у нас на экране. Тоесть нам необходимо считать все 20х20 поле, каждый пиксель. Речь идет не о том как ускорить процесс путем считывания не всего поля а только его куска. Речь идет о том как это 20х20 поле считать быстрее чем с помощью пиксель гет калор.

Вот пример картинки. То что у нее по краям - чорный цвет - ничего не значит. У других картинок там может быть не чорный.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:09, 08-08-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


В данном случае никак. Работу функций PixelSearch и PixelGetColor нельзя ускорить. Причём так сильно (вам ведь нужно примерно раз 6-8 быстрее.)
Ускорить общую работу можно, если бы, к примеру, 3-10 пикселей из этих 400 однозначано определяли саму картинку.


А вы уверены, что проблема в PixelSearch?

Сделал простой цикл поиска определённого пиксела в поле 100 на 100. 10000 проверок было сделано за:
225.176663514497 мс

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин


Последний раз редактировалось SyDr, 08-08-2009 в 21:41.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:17, 08-08-2009 | #12


Аватара для Belfigor

Пользователь


Сообщения: 87
Благодарности: 11

Профиль | Отправить PM | Цитировать


Мы собираем всю инфу с 8694 пикселей, включая сопоставление с орегиналами за 77мс, но хотелось бы еще быстрее.

Отправлено: 21:50, 08-08-2009 | #13


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


"Копайте" в другую сторону.
1 пикселсеарч со всего моего экрана (1280*1024) делается за 0,04 мс


Здесь вы вряд-ли что-либо ешё оптимизируете...

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин


Отправлено: 22:03, 08-08-2009 | #14


Аватара для Belfigor

Пользователь


Сообщения: 87
Благодарности: 11

Профиль | Отправить PM | Цитировать


В ближайшее время проведем исследовательскую работу по этому поводу
А в твоем случае пиксель находится в первом же из проверяемой области или же в самом правом нижнем углу?

Последний раз редактировалось Belfigor, 08-08-2009 в 22:28.


Отправлено: 22:16, 08-08-2009 | #15


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


В моём случае пикселя вообще нет на экране. То есть он сравнивает вообще со всеми.
Я немного спутал. Не 0,04 мс, а 20. Но это при условии, что проверяются 1310720 пикселей.

Может быть вам стоит использовать PxelCheksum? Он работает примерно в два раза дольше, чем поиск. Но при этом позволяет уникально идентифицировать изображение.

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин


Отправлено: 22:51, 08-08-2009 | #16


Аватара для Belfigor

Пользователь


Сообщения: 87
Благодарности: 11

Профиль | Отправить PM | Цитировать


Чек сумм отподает потому что обрабатываемый источник - корявый и там хоть где-то но цвет уплывает. Поэтому его надо сперва обработать отсеив все шумы и помехи и только потом сравнивать.

Отправлено: 23:14, 08-08-2009 | #17


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Belfigor:
Нам не надо искать где он может быть, мы уже знаем где он. »
тогда возникает вопрос: зачем тут вообще PixelSearch/PixelGetColor ?.. насколько я понял, тут нужно скопировать в массив все пиксели за один прием, и после этого IO вам не нужен... надеюсь, приложение оконное?

ADD: на оффсайте полно инфы по GDI для растра, родственная тема: Anything faster than Pixelgetcolor?

Последний раз редактировалось amel27, 09-08-2009 в 16:38.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:49, 09-08-2009 | #18


Аватара для Belfigor

Пользователь


Сообщения: 87
Благодарности: 11

Профиль | Отправить PM | Цитировать


amel27, говорил уже десять раз в других темах но все же повторюсь. Ты ну просто бох ответов на мои вопросы ^_^. Щас покурю новую инфу и патом скорее всего отмечу тему как решенную

Отправлено: 17:13, 09-08-2009 | #19



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » PixelSearch - Вопросы относительно мироздания

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Вопрос относительно тем в 7! rafik245 Microsoft Windows 7 12 17-09-2009 15:35
Разное - пара вопросов относительно sp1 Gold Dragon Microsoft Windows Vista 3 25-01-2009 17:39
Вопрос относительно цен на части ПК. BROTHERHOOD Хочу все знать 2 12-05-2008 11:20
Приемущество FreeBSD относительно Windows ilan Общий по FreeBSD 8 17-03-2004 01:08
PROXY-сервера ---- вопросы, вопросы, вопросы Galosh Хочу все знать 2 09-07-2003 00:57




 
Переход