Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Scropin
1

Алгоритм корекции изображения

09.07.2011, 23:35. Показов 1403. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравчтвуйте, подскажите, где можно прочитать про написание алгоритма корекции изображения?
Я хочу чтобы при изменении некоторых параметров в программе пиксели становились темнее или светлее(т.е. работа с яркостью, или как в фотошопе параметр Curvace).
Зарание благодарю!
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2011, 23:35
Ответы с готовыми решениями:

Алгоритм интерполяции изображения
Здравствуйте. Использую в программе вот такой алгоритм интерполяции изображения. // xscale,...

Алгоритм поворота изображения
Есть картинка, такого вида: ,они могут быть разными, то наклон в одну сторону то в другую,...

Алгоритм масштабирования изображения
Здравствуйте! Я новичок в компьютерной графике, а в курсовом проекте необходимо сделать программу,...

Алгоритм маштабирования изображения
Привет всем. Мне нужно уменьшить растровое изображение (HBITMAP), которое находится в памяти....

2
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
10.07.2011, 10:48 2
Лучший ответ Сообщение было отмечено как решение

Решение

Вот сделал, ну только для BMP/DIB файлов, с других форматов преобразуешь не в сжатый формат пикселей и тоже самое можно с ними творить. Вот это пример который ниже, очень медленный все настоящие растровые редакторы его не используют, есть другой способ прямой доступ к массиву пикселей.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
inline BYTE MIN(a, b)  {  return  (a < b) ? a : b;  }
inline BYTE MAX(a, b) {  return (a > b) ? a : b;   }
 
 
int step = 10;  // шаг интенсивности яркости или затемнения
 
// здесь описан код по увелечению якрости на N = step
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    BYTE red, green, blue;
    for(int x = 0; x < Image1->Picture->Bitmap->Width; x++) {
      for(int y = 0; y < Image1->Picture->Bitmap->Height; y++)  {
 
          DWORD color = (DWORD) Image1->Canvas->Pixels[x][y];  // получаем пиксель
 
          red   = (BYTE) (color >> 16) & 0xff;    // разрезаем его по-байтам
          green= (BYTE) (color >> 8) & 0xff;
          blue  = (BYTE) color & 0xff;
          blue  =  MIN(blue  + step, 255);  
          green=  MIN(green + step, 255);
          red   =  MIN(red   + step, 255);      // собираем в двойное слово назад
          Image1->Canvas->Pixels[x][y] = (TColor)(color & 0xff000000)| ((red & 0xff)<<16)|
                                         ((green & 0xff)<<8) | (blue & 0xff);
      }
    }
 
    Image1->Invalidate();
}
 
 
 
// ну здесь тоже самое только декремент на N = step
void __fastcall TForm1::Button2Click(TObject *Sender){
 
    BYTE red, green, blue;
    for(int x = 0; x < Image1->Picture->Bitmap->Width; x++) {
      for(int y = 0; y < Image1->Picture->Bitmap->Height; y++)  {
 
          DWORD color = (DWORD) Image1->Canvas->Pixels[x][y];
 
          red    = (BYTE) (color >> 16) & 0xff;
          green = (BYTE) (color >> 8) & 0xff;
          blue   = (BYTE) color & 0xff;
          blue   =  MAX(blue  - step, 50);
          green =  MAX(green - step, 50);
          red    =  MAX(red   - step, 50);
          Image1->Canvas->Pixels[x][y] = (TColor)(color & 0xff000000)| ((red & 0xff)<<16)|
                                         ((green & 0xff)<<8) | (blue & 0xff);
      }
    }
 
    Image1->Invalidate();
}
Во вложение мини-демо.
Вложения
Тип файла: rar image.rar (598.8 Кб, 38 просмотров)
0
Scropin
10.07.2011, 12:59 3
Спасибо за пример, буду пробовать!
10.07.2011, 12:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2011, 12:59
Помогаю со студенческими работами здесь

Алгоритм масштабирования изображения
Дорогие форумчане помогите придумать алгоритм масштабирования изображения. Чтобы описание алгоритма...

Наклон изображения. Алгоритм
Добрый день, уважаемые. Не подскажите ли: как осуществить наклон изображения(двумерный массив...

Алгоритм поворота изображения
Добрый день! Нашел алгоритм поворота изображения, на одном из ресурсов. С некоторыми моментами...

Алгоритм для масштабирования изображения
вот пример того что мне нужно сделать http://rvolve.com/zoom_pic.php . что реализовать подобный...


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

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