![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 28.05.2012
Сообщений: 29
|
![]()
Здравствуйте! Я новичок в компьютерной графике, а в курсовом проекте необходимо сделать программу, которая загружает изображение, затем увеличивает его в n целых раз, с помощью алгоритма масштабирования, полученное изображение сохраняется. Пересмотрел в нете кучу алгоритмов, таких как: hq2x, hq3x,2xsal, Eagle...но все они были описаны математически, столкнулся с трудом перевода их на язык C# пожалуйста помогите чем можете!!!
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 28.05.2012
Сообщений: 29
|
![]()
Например, как организовать этот алгоритм в C#?
Eagle работает следующим образом: для каждого входного пиксела генерируется 4 выходных, первоначально цвета всех четырех устанавливаются в цвет текущего сканируемого пикселя (точно так же, как и в ближайшем соседе), дальше просматриваются пикселы сверху и слева, если они одинакового цвета (все три), то красим левый верхний пиксел в этот цвет, выполняем аналогичные действия для всех четырех пикселей и двигаемся дальше.[3] » Сначала: . . . --\ CC . C . --/ CC . . . |Затем: |S T U --\ 1 2 |V C W --/ 3 4 |X Y Z | Если V==S==T => 1=S | Если T==U==W => 2=U | Если V==X==Y => 3=X | Если W==Z==Y => 4=Z |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 17.12.2008
Сообщений: 250
|
![]()
и в чем проблема?
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 28.05.2012
Сообщений: 29
|
![]()
как реализовать алгоритм программно
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 28.05.2012
Сообщений: 29
|
![]()
Есть такой код, что писать дальше?
private void button1_Click(object sender, EventArgs e) { pictureBox1.Load("D:\\X.bmp"); } private void button2_Click(object sender, EventArgs e) { Bitmap bmp = new Bitmap(pictureBox1.Image.Height,pic tureBox1.Image.Width); pictureBox1.DrawToBitmap(bmp, new Rectangle(0, 0, pictureBox1.Image.Height, pictureBox1.Image.Width)); pictureBox1.Image = bmp; for (int y = 0; y < bmp.Height; ++y) { for (int x = 0; x < bmp.Width; ++x) { Color c = bmp.GetPixel(x, y); // тут логика программы } } } |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 17.12.2008
Сообщений: 250
|
![]()
написал какую-то кривульку, которая вроде работает...
Код:
Последний раз редактировалось Reskov; 28.05.2012 в 19:09. Причина: c=t.GetPixel(x + i, y + j); |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 28.05.2012
Сообщений: 29
|
![]()
Спасибо большое, очень помогли!!!
![]() Последний раз редактировалось DENIS_POLOTSK; 28.05.2012 в 21:51. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
коэффициент масштабирования | zolman | Помощь студентам | 0 | 13.04.2011 11:44 |
Алгоритм масштабирования | Alex Cones | Свободное общение | 4 | 25.05.2010 16:02 |
Алгоритм упаковывания изображения | MIKI | Общие вопросы C/C++ | 4 | 04.06.2008 20:09 |
Алгоритм упаковывания изображения | MIKI | Фриланс | 7 | 06.04.2008 20:03 |