Здравствуйте, гость ( Вход | Регистрация )

> Смена Яркости точки или картинки., Находим картинку или несколько связаных точек, даже при смене яркости.
_LESTAT_
сообщение 23.10.2012, 13:10
Сообщение #1


****

Apprentice
Сообщений: 103
Регистрация: 12.3.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.512
Возраст: 25



Столкнулся с проблемой нахождения картинки (или точней трех пикселей находящихся на определенных координатах друг от друга на этой картинке) у которой меняется яркость, например когда наводишь на ее мышь она становиться ярче, при это м сама не меняясь. А когда становиться недоступной она остается той же картинкой, но становиться тусклой.
Вопрос можно ли найти нужную нам картинку даже если у нее сменилась яркость, при том что оригинальную яркость мы знаем. И примерно знаем на сколько эта самая яркость картинки изменилась.
Я уверен , что это возможно, вот только не знаю как реализовать, потому и прошу помощи у более сведущих в этих десятичных цветах и прочих тонкостях людей.

Пока что я допер до следующего. На нужной мне иконке, я снял определённую точку, в разных состояниях иконки, тоесьт когда она доступна, и когда недоступна. Перевел полученные цвета с помощью таблицы в полезных советах в RGB вид и вот что получил.
Цитата
dec R G B
556106 74 124 8
277797 37 61 4

Как видно на этом примере, каждая составляющая цвета на этой картинке уменьшилась почти ровно на половину(за исключением зеленого диапазона во втором случае, он почему то стал 61, хотя по логике должен быть 62).
Как бы то не было, яркость картинки уменьшилась в двое, и при этом сама картинка осталась прежней
, а значит ее можно найти, зная лишь оригинал, а так же то насколько(примерно) измениться яркость.

Ну вот идею я описал, а вот как реализовать я не знаю, помогите пожалуйста. Я ниче не смыслю в преобразовании цветов. Если это получиться с одной точкой, то потом можно применить к небольшим картинкам. Думаю это пригодиться многим, и сэкономит объем кода.
Для чего это мне нужно: Определяем и записываем три определенных пикселя на иконке(гет колором), а потом можем найти эту иконку в другом месте экрана , по пикселям расположенным на тех же местах друг от друга, причем даже если яркость всех трех пикселей изменилась примерно на равное значение.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
_LESTAT_
сообщение 23.10.2012, 14:11
Сообщение #2


****

Apprentice
Сообщений: 103
Регистрация: 12.3.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.512
Возраст: 25



Объясняю задачу более подробно.
1)Есть рамка(например размером 50 на 55 пикселей),, шириной в 1 пикс, она всегда одного цвета, ее мы легко можем найти в любой момент, она окантовывает картинку, которая изменяется. Она может менять положение на экране, но найти рамку на экране нетрудно,картинка в нутри ее может иметь разную яркость. В одном случае она примерно в два раза ярче, чем в другом. На экране обычно примерно 4-6 таких рамок, каждая со своей картинкой, но нам нужна лишь одна из картинок, для сравнения ее с контрольной. Поэтому мы проверяем все их поочереди. Находим верхний левый угол рамки, и относительно его(внутри рамки) проверяем, три набора координат, например первый 17*17 , второй в центре 25*27 , третий 40 * 47 . Сранивая пиксели в этих координатах, с считающимися контрольными, определенными чуть ранее гет колором, записаными в массиве . Если совпали все три пикселя, значит нашли нужную картинку.
2)Внутри этой рамки могут появляться разные картинки, но всегда одних и тех же размеров, скажем 49 на 54px, вариантов картинок не ограниченно(скажем более 100), многие из которых мне пока не доступны а значит узнать их цвета я пока даже не могу. Поэтому снять разные состояния для каждой картинки не представляется возможным. Зато мы почти на 99.9% уверены, в других картинках, на тех же местах, что эти(хотябы один из трех) пиксели, в тех же координатах, имеют другие цвета, а это значит что с другими картинками мы нужную нам не перепутаем, при этом не имея нигде не винте заготовленых бмп, и заранее сохраненных в файле данных.

Таким способом, создавал массивы для поиска например 10 нужный, среди например 80 разных картинок, по трем статичным пикселям. Это удобно. Намного проче чем юзать финд имейдж и сохранять заранее часть картинки(много же придеться сохранять, картинок ). В одном случае нужны одни предметы, в другом другие, потому, чтобы это сделать придеться емееть 80 маленьких бмп файлов, и сравниватьих друг с другом. Невариант правда ?? Куда проще емть массив, где сохранеты цвета трех пикселей(на статичных координатах), с каждой из картинок. Первичное сохранение кстате тоже делаеться с помощью, автоматически, так что не нужно возьться с принскином и пейнтом, вс каждой из 80 картинок.

Я и теперь воспользовался бы таким методом. , но картинка в разные случаное время меняет свою яркость. Я готов добавить в сравнение несколько новых цветов, был поиск по трем, теперь будет два поиска по трем. Но проблема в том. Что начальные данные мы получаем гет колором прямо в скрипте, а значит вычислять изменение яркости тоже нужно прямо в скрипте, и уже потом можно сравнивать . Если бы я сразу знал данные пикселей яркой и не яркой, и не яркой картинки, то проблемы бы небыло. Но изначально я могу определить лишь данные яркой картинки. А искать нужно и яркую и тусклую. Сред множества других. Мне ненужно искать по всему экрану, я знаю точные координаты пикселей,благодаря тому что знаю координаты рамки, цвет которой не меняется, так что сильно скрипт и комп это не загрузит.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
_LESTAT_   Смена Яркости точки или картинки.   23.10.2012, 13:10
DarkMaster   Подсвеченную так же можно найти get color'ом. ...   23.10.2012, 13:40
DarkMaster   Тогда вообще не вижу проблемы. Берете три точки, н...   23.10.2012, 15:11
_LESTAT_   У меня проблема такова, что вопервых я не знаюк ак...   23.10.2012, 15:56
DarkMaster   Посмотри внимательнее на заданные точки. Я их при...   23.10.2012, 16:15
DarkMaster   Давайте с примером. Есть три эталонных цвета: log...   23.10.2012, 17:38
DarkMaster   Там не обработано исключение деления на ноль. Будь...   23.10.2012, 17:57
_LESTAT_   Спасибо большое ! Пока не опробовал, но выгля...   23.10.2012, 18:42
DarkMaster   Почти. Коэффициент позволяет проверить соотношени...   23.10.2012, 19:57
DarkMaster   log mode compact log clear set %color [ 1 1 ...   23.10.2012, 20:15
_LESTAT_   Сколько не пытался, так ничего и не понял :( С пом...   24.10.2012, 10:08
DarkMaster   А вы сравните результат первого и второго прогона....   24.10.2012, 10:45
DarkMaster   Кстати учитывая точность, то можно обойтись просты...   24.10.2012, 11:42
_LESTAT_   Спасибо, посмотрел свежим взглядом я увидел, что к...   25.10.2012, 7:20
DarkMaster   set #xN #xFirst + #xOffset * (#n - #n / 2 * 2) set...   25.10.2012, 12:16
_LESTAT_   set #xN #xFirst + #xOffset * (#n - #n / 2 * 2) se...   25.10.2012, 16:55
змеючище   столкнувшись с похожей проблемой(в течении минуты ...   26.10.2012, 1:24
_LESTAT_   2 Змеючище Такой способ подойдет для переливающихс...   26.10.2012, 5:16
DarkMaster   просто из любопытства. насколько точно другие точк...   26.10.2012, 13:22


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 27.6.2026, 3:25
Designed by Nickostyle