Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм массштабирования битовой маски 
:(
    Опции темы
Annuta
Дата 4.4.2007, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 3.10.2006
Где: Dubna

Репутация: нет
Всего: 1



Привет... Народ помогите организовать алгоритм массштабирования.. что-то не получается..... совсем... smile .. уже мозги пухнут...
Задача такая есть битовая маска такая например
00000001    
00000011
00001001
00010001
00100001
00000001
00000001
00000001
00000001
00000001
00000001
00000001
ширина 8 высота 12.  Народ как мне организовать алгоритм массштабирования этой маски  с заданным коэффициентом масштаба ???
подскажите плиз...  я совсем в этих циклах запуталась... 



--------------------
Программист - это комбинация лени и логики !
PM MAIL   Вверх
DENNN
Дата 4.4.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Представь, что твоя битовая маска - это битмап. У тебя есть исходный битмап 8x12 и надо получить битмап MxN. Фактически задача сводится к поиску для любого пиксела из второй  картинки соотвествующего ему пикселя из первой (т.к. у нас лишь ноль или единица, то считать "переходные" полутона не нужно).
Простейший путь такого расчета: пропорция. Для каждой оси своя. Так скажем в результирующем изображении пиксель имеет координату X2. ТОгда получаем пропорцию X1/8=X2/M.  Как решать пропорции учат еще в школе  smile 

Пишешь подпрограмму, возвращающую для пары координат второго изображения, координаты на первом. Потом просто для каждого пикселя на создаваемом изображении вызываешь ее и получаешь соотвествующий текущему пиксель на первом. )))
PM ICQ   Вверх
SoWa
Дата 5.4.2007, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Мое предположение- при пропорциональном уменьшении точки будут сдвигаться по диагоналям.
Объединив предыдущий алгоритм и проверку на точность диагоналями можно спокойно реализовать


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Earnest
Дата 5.4.2007, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 7
Всего: 183



Цитата(Annuta @  4.4.2007,  23:27 Найти цитируемый пост)
подскажите плиз...  я совсем в этих циклах запуталась...

Мне кажется, проблема у нее не в этом.
Annuta, тебе надо отделить ковыряние в пикселах маски от задачи масштабирования. Для этого напиши пару функций GetPixel\SetPixel для маски заданного размера. Масштабирование реализуй так, как написал
DENNN:
   Для всех строк новой маски (row)
      Для всех столбцов новой маски (col)
         вычисляем координаты соответствующего пиксела в старой маске (row_old, col_old)
         спрашиваем у старой маски GetPixel (roq_old, col_old)
         записываем это значение в новую маску SetPixel (row, col)

Это основа, дальше можно оптимизировать - скажем, предварительно очистить (заполнить нулями) новую маску и тогда записывать туда только единицы... Реализовать как следует GetPixel\SetPixel... 
        
     


--------------------
...
PM   Вверх
Akina
Дата 5.4.2007, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 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


?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
DENNN
Дата 5.4.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Akina, раз масштабирование, то по логике должны раздуваться ))
PM ICQ   Вверх
Akina
Дата 5.4.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Я привык к тому, что постановка конкретной задачи обычно не отвечает логике...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0708 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.