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

Масштабирование - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Eugene THE BEST
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
05.01.2012, 00:25     Масштабирование #1
Здравствуйте.
Не могли бы вы подсказать реализацию/теорию(где почитать) про алгоритмы масштабирования? У меня есть монохромные матрицы из нулей-единиц, которые надо растянуть/уменьшить, привести к эталонной. Думаю, подойдут даже самые простейшие алгоритмы с большими искажениями.
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2012, 00:25     Масштабирование
Посмотрите здесь:

Масштабирование C++ Builder
HTML, CSS масштабирование
C++ Масштабирование числовой прямой
C++ Масштабирование на Canvas
Масштабирование C++ Builder
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
05.01.2012, 00:37     Масштабирование #2
Если с искажениями, то можно банально
C
1
2
3
float factor = 1.5;//коэффициен увеличения
...
out[i] = in[i / factor];
Для одномерного случая
Eugene THE BEST
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
05.01.2012, 00:47  [ТС]     Масштабирование #3
Спасибо, сейчас попробую разобрать и переделать для двумерного.

Вопрос в главной строчке перобразования - как это?
Присвоить i-тому элементу выходного массива значение возможно нецелого элемента? В смысле, если i будет равно пяти - что получится?
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
05.01.2012, 00:53     Масштабирование #4
Цитата Сообщение от Eugene THE BEST Посмотреть сообщение
Не могли бы вы подсказать реализацию/теорию(где почитать)
поищи про Аппроксимацию
книги про компьютерную графику
была такая книга
"Обработка компьютерной графики на С"
просто книга "Компьютерная графика" там про ассемблер но теория обработки изображений хорошо изложена
завтра закину данные
посмотри про ДиректХ обработка при помощи матриц
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
05.01.2012, 00:54     Масштабирование #5
Будет каст к целому(отбрасыванием дробной части), т.е. 3
Eugene THE BEST
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
05.01.2012, 00:56  [ТС]     Масштабирование #6
Нашел один способ в гуглокодах, но, чувствую, разбираться долго придется.
http://code.google.com/p/hqx/source/...unk/src/hq2x.c
Вроде как разобрался с интерполяцией "методом ближайшего соседа", но никак не могу понять, как поступить, если нужно а) увеличивать/уменьшать в нецелое число раз и б) увеличение/уменьшение неоднородно, щирина с длиной изменяются в разное кол-во раз.
Помогите пожалуйста, очень нужно.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
05.01.2012, 00:56     Масштабирование #7
Цитата Сообщение от Eugene THE BEST Посмотреть сообщение
В смысле, если i будет равно пяти - что получится?
хапнет из 4 элемента
5/1.5=3.33333 = 3 4 элемент
Eugene THE BEST
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
05.01.2012, 00:58  [ТС]     Масштабирование #8
ValeryS, Спасибо, обязательно поищу эти книги.

NoMasters, Хорошо, спасибо, надо на практике проверить, подойдет ли такой способ по кач-ву, или много потеряется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2012, 01:10     Масштабирование
Еще ссылки по теме:

C++ Масштабирование графика функции
C++ SDL2 BlitScaled и прозрачность - масштабирование изображения
Автоматической масштабирование графика C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
05.01.2012, 01:10     Масштабирование #9
посмотри
http://ermak.cs.nstu.ru/kg_rivs/graf.htm
сейчас взглянул мельком
вроде нормально описано при помощи матриц
http://ermak.cs.nstu.ru/kg_rivs/kg02.htm#tth_sEc0.1.1

Добавлено через 7 минут
для целого увеличения / уменьшения все просто
для увеличения из одной ячейки считаваешь сколько раз нужно увеличить
для уменьшения через ячейку, две,три
для дробного например в полтора раза - увеличил на три уменьшил на два
качество будет не ахти
если работаешь под виндой то можешь создать из своей матрицы картинку
масштабировать её методами GDI GDIPlus DirectX
и считать что получится
Yandex
Объявления
05.01.2012, 01:10     Масштабирование
Ответ Создать тему
Опции темы

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