![]() |
|
![]() ![]() ![]() |
|
Annuta |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 3.10.2006 Где: Dubna Репутация: нет Всего: 1 |
Привет... Народ помогите организовать алгоритм массштабирования.. что-то не получается..... совсем...
![]() Задача такая есть битовая маска такая например 00000001 00000011 00001001 00010001 00100001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 ширина 8 высота 12. Народ как мне организовать алгоритм массштабирования этой маски с заданным коэффициентом масштаба ??? подскажите плиз... я совсем в этих циклах запуталась... --------------------
Программист - это комбинация лени и логики ! |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Представь, что твоя битовая маска - это битмап. У тебя есть исходный битмап 8x12 и надо получить битмап MxN. Фактически задача сводится к поиску для любого пиксела из второй картинки соотвествующего ему пикселя из первой (т.к. у нас лишь ноль или единица, то считать "переходные" полутона не нужно).
Простейший путь такого расчета: пропорция. Для каждой оси своя. Так скажем в результирующем изображении пиксель имеет координату X2. ТОгда получаем пропорцию X1/8=X2/M. Как решать пропорции учат еще в школе ![]() Пишешь подпрограмму, возвращающую для пары координат второго изображения, координаты на первом. Потом просто для каждого пикселя на создаваемом изображении вызываешь ее и получаешь соотвествующий текущему пиксель на первом. ))) |
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Мое предположение- при пропорциональном уменьшении точки будут сдвигаться по диагоналям.
Объединив предыдущий алгоритм и проверку на точность диагоналями можно спокойно реализовать -------------------- Всем добра ![]() |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Мне кажется, проблема у нее не в этом. Annuta, тебе надо отделить ковыряние в пикселах маски от задачи масштабирования. Для этого напиши пару функций GetPixel\SetPixel для маски заданного размера. Масштабирование реализуй так, как написал DENNN: Для всех строк новой маски (row) Для всех столбцов новой маски (col) вычисляем координаты соответствующего пиксела в старой маске (row_old, col_old) спрашиваем у старой маски GetPixel (roq_old, col_old) записываем это значение в новую маску SetPixel (row, col) Это основа, дальше можно оптимизировать - скажем, предварительно очистить (заполнить нулями) новую маску и тогда записывать туда только единицы... Реализовать как следует GetPixel\SetPixel... -------------------- ... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Вопрос таков - единички "раздуваются" или нет? т.е.
0 0 0 1 при увеличении вдвое превратится в 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 или в 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 ? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Akina, раз масштабирование, то по логике должны раздуваться ))
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Я привык к тому, что постановка конкретной задачи обычно не отвечает логике...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |