Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
prank2007
0 / 0 / 0
Регистрация: 01.07.2012
Сообщений: 64
#1

RGB компоненты изображения - C++

13.09.2012, 15:27. Просмотров 899. Ответов 1
Метки нет (Все метки)

помогите правильно написать условие изменения пикселей изображения. У меня задача, что при щелчке кнопкой мыши на изображение, задаются RGB параметры этого пикселя (R2,G2,B2), например (100,100,100) все эти пиксели изображения нужно заменить на красные (255,0,0).

C++
1
2
3
4
5
if (Image2->Canvas->Pixels[x][y] == RGB(R2,G2,B2))
 
{
Image2->Canvas->Pixels[x][y] = RGB(255,0,0);
}
а мне надо чтобы похожие пиксели отличающиеся где-то на 10 значений по каждому цветовому каналу тоже заменялись, например (95,103,99), (100,103,98) и т.д.
по сути должно быть:
C++
1
2
3
4
5
6
7
8
9
10
DR1=R2-10;
DG1=G2-10;
DB1=B2-10;
DR2=R2+10;
DG2=G2+10;
DB2=B2+10;
if (Image2->Canvas->Pixels[x][y] == RGB((DR1<R2<DR2),(DG1<G2<DG2),(DB1<B2<DB2)))
{
Image2->Canvas->Pixels[x][y] = RGB(255,0,0);
}
ничего не происходит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2012, 15:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос RGB компоненты изображения (C++):

Преобразование изображения из цветовой модели RGB в модель HSL - C++
Всем доброго времени суток! Я учусь на программиста, и мне очень нужна ваша помощь. Что нужно для преобразования изображения из...

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

Упорядочить компоненты вектора так, чтобы сначала размещались все отрицательные компоненты, а затем положительные - C++
заранее спасибо! кто поможет мне с задачей Дан вектор Х(а1,а2...аn)(n=100) упорядочить компоненты вектора так, чтобы сначала размещались...

Использование RGB в консоли - C++
Здравствуйте. Подскажите, как менять цвета шрифта/цвета в консоли, задавая его через РГБ? (16, которые можно ставить через винапи,...

Преобразование из YCbCr в RGB - C++
ЧЯДнТ? Формула? Код? Цветовое пространство? :help: #define BYTE uchar void MainWindow::yuv_rgb(BYTE* array, BYTE Y) { BYTE...

Graphics: YUV -> RGB conversion - C++
Ктo-тo мoзет пoдскaзaтъ или пoкaзaтъ кoд? Сусчествуыет мнoгo фoрмул, врoде: r = (1.164 * (ы - 16)) + (2.018 * (в - 128)); g...

1
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.09.2012, 00:06 #2
каждый цветовой канал нужно подвергнуть проверке. по какому условия - "и" или "или" - не понятно.
ну вот примерный вариант в полупсевдокоде с "и"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const RGBColor color = Image2->Canvas->Pixels[x][y];
const Byte r = GetRedColor(color);
const Byte g = GetGreenColor(color);
const Byte b = GetBlueColor(color);
 
// ну и дальше цепочка сравнений вроде
const bool needChange =  (90 <= r && r <= 110)
                      && (90 <= g && g <= 110)
                      && (90 <= b && b <= 110)
                      ;
if (needChange)
{
  Image2->Canvas->Pixels[x][y] = RGB(255,0,0);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2012, 00:06
Привет! Вот еще темы с ответами:

Найти приблизительный цвет RGB - C++
Добрый вечер, пытаюсь написать бота для игры, есть код: HDC hdc=GetDC(Handle_ArcheAge); COLORREF c = GetPixel (hdc, 110, 39); //...

Массив пикселей RGB в JPEG - C++
Всем доброго времени суток! Пишу программу под МК на С/С++. На входе имею массив пикселей в формате RGB565 (2 байта/пиксель). На...

Как вытянуть RGB из COLORREF? - C++
например я вот так делаю COLORREF color; color = ::GetPixel(hdc, x, y); cout &lt;&lt; color; и как из этого получить цвет в RGB? а то...

Получить RGB bmp файла - C++
Всем привет. Стоит задача получить массив пикселей с помощью Bitmap Я нуб в этом, но написал что то типа: #if...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru