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

Изменение контрастности изображения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки. Получить последовательность символов, содержащую только последние вхождения каждого символа с сохранением взаимного порядка этих вхождений http://www.cyberforum.ru/cpp-beginners/thread858529.html
Есть задание: Даны натуральное число n, символы s1, ... , sn. Получить последовательность символов, содержащую только последние вхождения каждого символа с сохранением взаимного порядка этих вхождений. Попыталась что-то похожее написать, но программа ест только первую повторяющуюся букву: #include "stdafx.h" #include <iostream> #include <string>
C++ Нужно написать программу, которая будет генерировать набор чисел и букв из 15 символов Мне нужно написать программу, которая будет генерировать набор чисел и букв из 15 символов Всего 3 группы по 5 символов такого формата: 6WBMM-N4SM4-Y9FG8 Первые 3 символа в первой группе постоянны, расположение остальных символов также постоянно,меняется только значение. Кому не сложно, объясните новичку?) http://www.cyberforum.ru/cpp-beginners/thread858517.html
В односвязном списке поменять местами крайние элементы C++
что есть у меня: #include <iostream> #define N 6 using namespace std; struct Node { int d; Node*next; }; Node * first(int d)//добавление 1ого элемента
C++ Заполнить одномерную матрицу В, каждый элемент которой является соответствующим средним арифметическим столбца матрицы А
Заполнить матрицу А размера NxM, , заполненную случайными числами от 0 до 100. Заполнить одномерную матрицу В, каждый элемент которой является соответствующим средним арифметическим столбца матрицы А.
C++ Заполнить массив А*n случайными числами от 0 до 20. Получить max(a1,a2)+max(a2,a3)+max(a n-1,a n) http://www.cyberforum.ru/cpp-beginners/thread858457.html
Заполнить массив А*n случайными числами от 0 до 20. Получить max(a1,a2)+max(a2,a3)+max(a n-1,a n)
C++ чтение из файла данные берутся из файла. можно ли считывать данные из файла начиная с определенной позиции в строке? Добавлено через 59 минут использую структуры текстовый файл содержит Код_Клиента ФИО Код_Заказа Заказано нужно подсчитать количество одинаковых заказов. Добавлено через 10 минут struct zak подробнее

Показать сообщение отдельно
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
13.05.2013, 19:56  [ТС]     Изменение контрастности изображения
Вот что получилось:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include <windows.h>
 
HBITMAP bmp;
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
HWND button1, button2, button3, button4, button5, orig;
HDC Hdc;
int rezcolors[3][3];
int newcolors;
 
 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
     {
     static char szAppName[] = "Win" ;
     HWND        hwnd ;
     MSG         msg ;
     WNDCLASSEX  wndclass ;
 
     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (NULL, IDI_APPLICATION) ;
 
     RegisterClassEx (&wndclass) ;
 
     hwnd = CreateWindow (szAppName,         // window class name
                    "Smoothing",                 // window caption
                    WS_OVERLAPPEDWINDOW,     // window style
                    CW_USEDEFAULT,           // initial x position
                    CW_USEDEFAULT,           // initial y position
                    600,                    // initial x size
                    600,                    // initial y size
                    NULL,                    // parent window handle
                    NULL,                    // window menu handle
                    hInstance,               // program instance handle
                    NULL) ;                  // creation parameters
 
     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;
 
     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }
 
void gist(int xx)
{
    Rectangle(Hdc,xx-1,350,xx+186,350);
    int r,g,b,spectr,sumspectr,k2;
    for (int x=xx;x<xx+250;x++)
    {
        sumspectr=0;
        for (int y=100;y<350;y++)
        {
            r=GetRValue(GetPixel(Hdc, x, y));
        //  g=GetGValue(GetPixel(Hdc, x, y));
            //b=GetBValue(GetPixel(Hdc, x, y));
            spectr=r;
            sumspectr+=spectr;
        }
        k2=1;
        sumspectr=sumspectr/500;
        for (int q=0;q<sumspectr;q++)
        {
            SetPixel(Hdc, x, 350-k2, RGB(0,0,0));
            k2++;
        }
    }
}
 
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     HDC         hdc=GetDC(hwnd);
     PAINTSTRUCT ps ;
     RECT        rect ;
     Hdc=hdc;
     TCHAR buf1[256];
     TCHAR buf2[256];
     char buf111[256];
     int buf11;
     int buf22;
    CharToOem(buf1,buf111);
     buf11=int(buf111);
     buf22=int(buf2);
 
     switch (iMsg)
          {
          case WM_CREATE :
              bmp=(HBITMAP) LoadImage(NULL, "f.bmp", IMAGE_BITMAP,0,0, LR_LOADFROMFILE);
              button1 = CreateWindow ("EDIT","255",SS_CENTER | WS_CHILD | WS_VISIBLE,150,50,150,50,hwnd,NULL,0,NULL);
              button2 = CreateWindow ("BUTTON","перерисовка",WS_CHILD | WS_VISIBLE,300,50,150,50,hwnd,NULL,0,NULL);
              button3 = CreateWindow ("BUTTON","Ввести нижнюю границу",WS_CHILD | WS_VISIBLE,0,0,150,50,hwnd,NULL,0,NULL);
              button4 = CreateWindow ("BUTTON","Ввести верхнюю границу",WS_CHILD | WS_VISIBLE,150,0,150,50,hwnd,NULL,0,NULL);
              button5 = CreateWindow ("BUTTON","гистограмма",WS_CHILD | WS_VISIBLE,300,0,150,50,hwnd,NULL,0,NULL);
              orig = CreateWindow("EDIT","0", SS_CENTER | WS_CHILD | WS_VISIBLE, 0, 50, 150, 50, hwnd, NULL, 0, NULL);
             
              return 0 ;
          
          case WM_COMMAND:
        /*    if (lParam==LPARAM(button1))
              {
                 TCHAR buf1[256];
             GetWindowText(orig,buf1,lstrlen(buf1));
             TCHAR b1[256];
                   GetWindowText(button5,b1,lstrlen(b1));
              }*/
 
              if (lParam==LPARAM(button2))
              {
                  for (int x=1;x<250;x++)
                      for (int y=101;y<287;y++)
                  {
                      newcolors=GetRValue(GetPixel(hdc, x-1, y-1));
                      if(buf11>=newcolors)
                      {
                          SetPixel(hdc, x, y, RGB(0,0,0));
                      };
                      if(buf22<=newcolors)
                      {
                      SetPixel(hdc, x, y, RGB(255,255,255));
                      };
                      if(buf11<=newcolors && buf22>=newcolors)
                      {
                      newcolors=newcolors-buf11;
                      SetPixel(hdc,x,y,RGB(newcolors,newcolors,newcolors));
                      }
                      }       
                                      
              }
              
              if (lParam==LPARAM(button3))
              {
                  GetWindowText(orig,buf1,lstrlen(buf1));
              }
 
              if (lParam==LPARAM(button4))
              {
                   GetWindowText(button1,buf2,lstrlen(buf2));
              }
 
              if (lParam==LPARAM(button5))
              {
                  gist(0);
              }
              return 0;
 
          case WM_PAINT :
               hdc = BeginPaint (hwnd, &ps) ;
               HDC memdc;
               memdc=CreateCompatibleDC(hdc);
               SelectObject(memdc,bmp);
               BitBlt(hdc, 0, 100, 250, 186, memdc, 0, 0, SRCCOPY);
               DeleteDC(memdc);
               EndPaint (hwnd, &ps) ;
               return 0 ;
 
          case WM_DESTROY :
               PostQuitMessage (0) ;
               return 0 ;
          }
 
     return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
     }
Осталось преобразовать TCHAR в int каким образом можно сделать? Пока то что пробовал получалась фигня. Мб еще какие нибудь ошибки кто заметит пишите!

Добавлено через 20 часов 12 минут
Народ помогите кто нибудь сделать преобразование!!!
 
Текущее время: 10:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru