Visual FFT

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

Модератор: BV

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Visual FFT

Сообщение tyomitch » 04.11.2006 (Сб) 14:12

Вдохновлённый курсом "обработка изображений", написал себе игрушку.
Не утверждаю, что аналогов у неё нет, но на VB я точно ничего подобного не видел.

Большую часть архива занимает тестовая картинка. Я не виноват, что RAR её почти не ужал.


Инструкция по употреблению: таскать чёрный прямоугольник и любоваться.
У вас нет доступа для просмотра вложений в этом сообщении.
Изображение

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 04.11.2006 (Сб) 15:06

Прикольно, и не тормозит
[Место cдаётся]

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Re: Visual FFT

Сообщение Alexanbar » 04.11.2006 (Сб) 19:06

tyomitch писал(а):Большую часть архива занимает тестовая картинка. Я не виноват, что RAR её почти не ужал.


Если картинка в формате JPG или GIF , она уже сжата сама по себе.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.11.2006 (Сб) 21:15

Те, кто скачали архив, увидели, что картинка в формате BMP.
Потому что GIF не подходит (она полноцветная), JPEG не подходит (теряется смысл FFT), и PNG тоже не подходит (VB его не понимает).
Вывод: прежде чем сказануть, желательно подумать.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.11.2006 (Сб) 22:13

[23:24] [tyomitch] комментирую: картинка справа сверху -- это спектр. То, что по нему восстанавливается, слева сверху.

[23:25] [GSerg] Что это всё значит?

[23:25] [tyomitch] Смысл игрушки в том, чтобы представить себе, как от отрезания отдельных областей спектра меняется картинка.

[23:25] [GSerg] Какого спектра? Почему?

[23:25] [tyomitch] Например, можно отрезать полоску вдоль горизонтальной оси, тогда на картинке сотрутся все вертикальные линии.

[23:27] [tyomitch] Спектр здесь такой же по смыслу, как например в эквалайзере у винампа. Только двухмерный.

[23:27] [tyomitch] В центре низкие частоты, по краям высокие

[23:28] [tyomitch] Изначально он симметричный, но можно сделать его несимметричным и поглядеть, что получится

[23:28] [GSerg] Частоты чего?

[23:28] [tyomitch] Синусоид :-)
FFT -- это разложение картинки в сумму синусоид

[23:29] [GSerg] Как?

[23:29] [tyomitch] Чем ярче рисуется точка, тем больше "вклад" соответствующей ей синусоиды

[23:29] [GSerg] Почему синусоиды?

[23:29] [GSerg] Каждой точке соответствует синусоида?

[23:29] [tyomitch] Да

[23:30] [GSerg] Почему?

[23:30] [tyomitch] Синусоиды -- потому что с ними потом удобно работать. Например, можно обрезать высокие частоты. Получится жипег.

[23:31] [tyomitch] Направление точки от центра спектра -- это ось её синусоиды. И чем она дальше, тем больше её частота.

[23:33] [tyomitch] Ещё у неё есть фазовый сдвиг (он не рисуется). Направление, фаза и частота синусоиду полностью задают.

[23:35] [GSerg] А как картинка в спектр переводится?

[23:37] [tyomitch] Фишка FFT в том, что оно само-обратно. Это к тому, зачем синусоиды.
Если представить, что каждая точка картинки -- это амплитуда соответствующей синусоиды, и сложить все эти синусоиды, то получится спектр.

[23:39] [GSerg] В результате сложения синусоид получится синусоида.

[23:39] [tyomitch] нет, потому что фазы разные

[23:40] [GSerg] да, получится всякая фигня, но получится функция

[23:40] [tyomitch] ага

[23:40] [GSerg] спектр откуда?

[23:40] [tyomitch] картинка -- это функция двух аргументов. Спектр тоже.

[23:41] [GSerg] Тогда это не плоская синусоида.

[23:41] [tyomitch] у картинки есть x и y, а у спектра частота и направление

[23:41] [tyomitch] спектр, кстати, комплексно-значный (потому что фаза и амплитуда)

[23:42] [tyomitch] Вот, и функция на плоскости (картинка) раскладывается в сумму синусоид на плоскости (спектр)

[23:43] [GSerg] вот что раскладывается одна точка?

[23:44] [tyomitch] нет, каждая точка картинки даёт вклад во все точки спектра, и наоборот

[23:44] [tyomitch] именно поэтому часть точек можно стереть, и картинка мало изменится

[23:44] [GSerg] Пока я плохо представляю эту сумму.

[23:45] [tyomitch] в 1-мерном случае представляешь? :-)

[23:45] [GSerg] От одного аргумента - представляю.

[23:46] [GSerg] Но я говорил
GSerg (05:40 AM) :
Тогда это не плоская синусоида.

[23:46] [GSerg] То есть это поверхность а-ля картонка для яиц?

[23:46] [tyomitch] нет, скорее лист шифера

[23:46] [GSerg] ну да

[23:48] [GSerg] допустим...

[23:49] [GSerg] Кстати, картинка полноцветная, как ты верно заметил. А на форме она серая.

[23:51] [tyomitch] поэтому полосы на картинке в каком-то одном направлении соответствуют перпендикулярным им направлениям спектра
(это ещё про шифер)
у полноцветной картинки, соответственно, три спектра.

[23:52] [tyomitch] жипеговцы установили, что человеку важнее всего яркость картинки. Поэтому изучать степень потери информации от обрезания спектра можно и на чёрно-белой.

[23:55] [GSerg] Но тогда зачем хавать место цветной фоткой?

[23:56] [tyomitch] не знаю. Эта фотка, вообще-то, стандартная.

[23:58] [GSerg] чем?

[23:59] [tyomitch] 30-летней традицией использования в тестовых целях.
http://en.wikipedia.org/wiki/Lenna

[00:04] [tyomitch] можно, запощу всё это, начиная со слова "комментирую"?

[00:06] [GSerg] да пость...
Изображение

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 04.11.2006 (Сб) 23:04

lenna.bmp - 768 KB...
Для PNG и TGA уже давно существуют готовые классы. Религия не позволила их заюзать?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.11.2006 (Сб) 23:19

Lenna.png‎ - 464 KB.
RAR так и сжал.
Вы ничего не потеряли.
Изображение

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 05.11.2006 (Вс) 7:33

tyomitch
Круто! :)
Подпись находится в стадии разработки...

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 05.11.2006 (Вс) 12:10

Про диалог запостенный Тёмычем: Автор молодец, пиши ещё!
[Место cдаётся]

zan
Бывалый
Бывалый
 
Сообщения: 224
Зарегистрирован: 24.08.2006 (Чт) 4:55

Сообщение zan » 07.11.2006 (Вт) 7:55

tyomitch посмотри эту картинку... приемлемо ли качество?
P.S. Архив проекта сжал до 173 Кб
У вас нет доступа для просмотра вложений в этом сообщении.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.11.2006 (Вт) 11:41

Ну говорю же: это стандартная картинка, тут каждый пиксел освящён временем. Вы б ещё предложили строку "Hello, world!" сократить.

Плюс к этому, качество неприемлемо. Разницу в спектре видно невооружённым глазом: у тебя высоких частот больше (см. аттач)
У вас нет доступа для просмотра вложений в этом сообщении.
Изображение

zan
Бывалый
Бывалый
 
Сообщения: 224
Зарегистрирован: 24.08.2006 (Чт) 4:55

Сообщение zan » 08.11.2006 (Ср) 7:54

tyomitch писал(а):тут каждый пиксел освящён временем

Согласен, классика есть классика :)
tyomitch писал(а):Плюс к этому, качество неприемлемо. Разницу в спектре видно невооружённым глазом: у тебя высоких частот больше (см. аттач)

На сколько неприемлемо? Соотношение размер/качество... Да и увидит ли большинство зашкаливание каналов?
tyomitch глянь карту в атаче
У вас нет доступа для просмотра вложений в этом сообщении.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.11.2006 (Ср) 8:49

zan писал(а):
tyomitch писал(а):Плюс к этому, качество неприемлемо. Разницу в спектре видно невооружённым глазом: у тебя высоких частот больше (см. аттач)

На сколько неприемлемо? Соотношение размер/качество...

Нет, неприемлемо по уровню соответствия оригиналу (резко отличается).
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.11.2006 (Пт) 18:19

Версия 2: с подкраской фазы.
У вас нет доступа для просмотра вложений в этом сообщении.
Изображение


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron