С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
2 / 2 / 1
Регистрация: 25.03.2014
Сообщений: 79
1

Найти приблизительный цвет RGB

27.02.2015, 17:46. Показов 3350. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер, пытаюсь написать бота для игры, есть код:
C++
1
2
3
4
HDC hdc=GetDC(Handle_ArcheAge);
COLORREF  c = GetPixel (hdc, 110, 39); // координаты определения пикселя
ReleaseDC(Handle_ArcheAge,hdc);
if (Handle_ArcheAge, c ==RGB(54,120,32)) //RGB коды цветов
проблема в том, что в игре в том месте не пиксель определённого цвета, а его градации, вероятно из-за сглаживания, как можно сделать так, чтобы он работал не с 1 вариантом, а в некотором периоде для этого цвета ибо прописывать для всех вариантов будет сумасшествие или всё таки прописывать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2015, 17:46
Ответы с готовыми решениями:

Найти темный и светлый цвет RGB
есть RGB цвет...надо найти ее темный и светлый цвет.. ULONG CCWINDOW::Analizer(COLORREF...

Получить цвет пикселя в RGB
Здравствуйте, как можно получить цвет пикселя в RGB ? Желательно с использование библиотеки png++

Получить цвет каждого пикселя изображения, разбив на уровни RGB
Нужно получить цвет каждого пикселя изображения, разбив на уровни RGB. Как реализовать подобное?

Как поменять цвет текста консоли на любой цвет из RGB цветов
Цвет консоли можно поменять используя только 16 встроенных цветов или можно использовать комбинации...

3
Native x86
Эксперт Hardware
5638 / 3378 / 957
Регистрация: 13.02.2013
Сообщений: 10,705
27.02.2015, 17:55 2
Лучший ответ Сообщение было отмечено konsrevator как решение

Решение

Вместо того, чтобы сравнивать цвет пикселя со сформированным RGB-значением, нужно сделать наоборот: разложить пиксел на R, G и B, и сравнивать каждую составляющую с эталоном, учитывая возможное отклонение.

C
1
2
3
4
5
6
7
8
9
10
11
char R, G, B, Band;
 
HDC hdc = GetDC(Handle_ArcheAge);
COLORREF c = GetPixel(hdc, 110, 39); // координаты определения пикселя
ReleaseDC(Handle_ArcheAge, hdc);
 
R = GetRValue(c);
G = GetGValue(c);
B = GetBValue(c);
Band = 5; // допуск на отклонение от основного цвета
if(R >= 54-Band && R <= 54+Band && G >= 120-Band && G <= 120+Band && B >= 32-Band && B <= 32+Band) //...
0
41 / 41 / 26
Регистрация: 24.02.2015
Сообщений: 151
27.02.2015, 17:56 3
Сравнивай каждую компоненту отдельно. Если компонента R > (54 - 5) && R< (54 + 5), поверяешь следующую. +-5 это будет твоя точность. Можно каждой компоненте определить свою точность. Ну и эксперементируй пока не получится выделить всю область.
0
2 / 2 / 1
Регистрация: 25.03.2014
Сообщений: 79
27.02.2015, 19:22  [ТС] 4
Большое спасибо, всё работает
0
27.02.2015, 19:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2015, 19:22
Помогаю со студенческими работами здесь

Цвет в цветовой схеме RGB – определить “средний цвет”
2. Описать структуры для хранения описания объектов и функции выполняющие вычисления для массива...

Вернуть цвет пикселя в RGB
Добрый день. Как зная координаты пикселя на Image1 или Форме получить цвет этого пикселя?

Цвет в OLE_COLOR, в RGB и в HTML
Скажите, как перевести значение цвета OLE_COLOR &lt;-&gt; RGB &lt;-&gt; HTML? Или хотя бы намекните, какова...

Как задать цвет в rgb?
приведите пример как можно применить цвет в rgblabel2.BackColor = Color.AliceBlue;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru