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

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

Восстановить пароль Регистрация
 
prank2007
 Аватар для prank2007
0 / 0 / 0
Регистрация: 01.07.2012
Сообщений: 64
13.09.2012, 15:27     RGB компоненты изображения #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);
}
ничего не происходит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2012, 15:27     RGB компоненты изображения
Посмотрите здесь:

RGB C++
C++ как вытянуть RGB из COLORREF?
C++ Graphics: YUV -> RGB conversion
C++ Упорядочить компоненты вектора так, чтобы сначала размещались все отрицательные компоненты, а затем положительные
как считывать изображение RGB в массив ? C++
Преобразование изображения из цветовой модели RGB в модель HSL C++
Получить цвет пикселя в RGB C++
C++ RGB

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.09.2012, 00:06     RGB компоненты изображения #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);
}
Yandex
Объявления
14.09.2012, 00:06     RGB компоненты изображения
Ответ Создать тему
Опции темы

Текущее время: 14:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru