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

Фоновая коррекция изображения - C++

Восстановить пароль Регистрация
 
prank2007
 Аватар для prank2007
0 / 0 / 0
Регистрация: 01.07.2012
Сообщений: 64
29.09.2012, 19:20     Фоновая коррекция изображения #1
Мне надо написать прогу, которая корректировала бы фон изображения по алгоритму:Для каждого пикселя изображения 3 (результат) : (R3,G3,B3)=(R2-R1,G2-G1,B2-B1)+Del, где Del это значение scrollbar от -255 до 255, R1,G1,B1 - значения пикселей фона, R2,G2,B2 - значение пикселей изображения, которое надо изменить. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
{
int H=Image1->Picture->Height;
int W=Image1->Picture->Width;
int Del=ScrollBar1->Position;
for (int y=0; y<H; ++y)
{
for (int x=0; x<W; ++x)
    {
    signed char* r1=(signed char*)Image1->Picture->Bitmap->ScanLine[y]+x*3+2;
    signed char* g1=(signed char*)Image1->Picture->Bitmap->ScanLine[y]+x*3+1;
    signed char* b1=(signed char*)Image1->Picture->Bitmap->ScanLine[y]+x*3+0;
    signed char* r2=(signed char*)Image2->Picture->Bitmap->ScanLine[y]+x*3+2;
    signed char* g2=(signed char*)Image2->Picture->Bitmap->ScanLine[y]+x*3+1;
    signed char* b2=(signed char*)Image2->Picture->Bitmap->ScanLine[y]+x*3+0;
    signed char* r3=(signed char*)Image3->Picture->Bitmap->ScanLine[y]+x*3+2;
    signed char* g3=(signed char*)Image3->Picture->Bitmap->ScanLine[y]+x*3+1;
    signed char* b3=(signed char*)Image3->Picture->Bitmap->ScanLine[y]+x*3+0;
 
 
    *r3=*r2-*r1+Del;
    *g3=*g2-*g1+Del;
    *b3=*b2-*b1+Del;
    }
}
    this->Refresh();
Label7->Caption=ScrollBar1->Position;
}
по сути при положении scrollbar в -255 должны быть все черные пиксели а при 255 все белые пиксели
что имею на самом деле:
фон:http://www.cyberforum.ru/attachment....1&d=1348935195
Изображение которое надо изменить:http://www.cyberforum.ru/attachment....1&d=1348935195
Результат при -255 (должно быть все черное):http://www.cyberforum.ru/attachment....1&d=1348935195
Результат при 255 (должно быть все белое)http://www.cyberforum.ru/attachment....1&d=1348935195

в чем ошибка? мне кажется что с типом данных что-то не так...
Миниатюры
Фоновая коррекция изображения   Фоновая коррекция изображения   Фоновая коррекция изображения  

Фоновая коррекция изображения  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2012, 19:20     Фоновая коррекция изображения
Посмотрите здесь:

C++ Коррекция перевода float > char[]
C++ Динамические изображения С++
Фоновая музыка в программе C++
Qt загрузка изображения C++
C++ Консоль и изображения
C++ Задача на изображения
C++ Коррекция
Перспективная коррекция в 2D C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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