0 / 0 / 0
Регистрация: 13.08.2021
Сообщений: 19
|
|||||||||||
1 | |||||||||||
Delphi 6-7 Ускорить программу, которая выполняет преобразование Фурье13.08.2021, 18:52. Показов 1950. Ответов 27
Здравствуйте. Столкнулся с проблемой, программа медленно работает. Подключить модули, которые выполняют быстрое преобразование Фурье (FFT) не получается. В общем, нужна помощь с ускорением работы программы.
Преобразование Фурье над двумерным массивом из изображения. Важно, изображение должно быть формата JPEG с глубиной цвета 8-bit
0
|
13.08.2021, 18:52 | |
Ответы с готовыми решениями:
27
Составьте программу, которая выполняет чертёж Составьте программу, которая выполняет чертёж Найти коэффиценты разложения в ряд Фурье, используя быстрое преобразование Фурье (БПФ) Обратное дискретное преобразование Фурье без использования быстрого преобразования Фурье (функции ifft) |
Модератор
3751 / 2251 / 782
Регистрация: 15.11.2015
Сообщений: 8,964
|
|||||||||||
17.08.2021, 11:00 | 21 | ||||||||||
Очень плохая идея надеяться на инициализацию M и N в другой процедуре, потом загружать изображение и ожидать, что размеры изображения совпадут с заданными заранее. Что мешает и тут сделать
Добавлено через 6 минут Зачем тут загружать изображение из файла
Добавлено через 6 минут Поздравляю, оно работает. Но для неквадратного изображения что-то не так, возможно, координаты где-то перепутаны.
0
|
0 / 0 / 0
Регистрация: 13.08.2021
Сообщений: 19
|
|
17.08.2021, 11:17 [ТС] | 22 |
AzAtom,
Я подумал и понял, что ничего не мешает, я так и сделал.
Это так, не нужная часть кода. Просто я ещё пытаюсь со всем этим разобраться и понять как работает. Так что там встречается много не нужного. Но не думаю, что это существенно замедляет программу. Программу сильно замедляет обработка изображений. При использовании изображения 100x100 время выполнения: примерно 20 сек. при прямом преобразовании и 36 сек. при обратном. Это печально
0
|
Модератор
3751 / 2251 / 782
Регистрация: 15.11.2015
Сообщений: 8,964
|
||||||
17.08.2021, 11:27 | 23 | |||||
Fourier, вот это выражение:
Добавлено через 4 минуты А, не, ошибся, там ещё вложенные циклы.
0
|
0 / 0 / 0
Регистрация: 13.08.2021
Сообщений: 19
|
|
17.08.2021, 11:46 [ТС] | 24 |
AzAtom, ага. Была идея как-то заменить это "sincos", которая в модуле MATH, но не получилось
0
|
Модератор
3751 / 2251 / 782
Регистрация: 15.11.2015
Сообщений: 8,964
|
|
17.08.2021, 11:58 | 25 |
Кстати, отличная идея. Аргументы одинаковые, а команда процессора именно sincos и сразу вычисляет обе функции.
Добавлено через 8 минут На картинке 100х100 с отдельными Sin, Cos у меня получилось 12,6 сек и с SinCos получилось 8,4 сек прямое преобразование.
0
|
0 / 0 / 0
Регистрация: 13.08.2021
Сообщений: 19
|
|
17.08.2021, 12:04 [ТС] | 26 |
AzAtom, Ваш компьютер явно лучше моего. 4,2 сек в выигрыше - это отлично. У вас получилось это реализовать ?
0
|
Модератор
3751 / 2251 / 782
Регистрация: 15.11.2015
Сообщений: 8,964
|
||||||
17.08.2021, 12:14 | 27 | |||||
Fourier, ноутбучный Core i5 2 поколения, лет 9 ему.
SinCos? Да:
1
|
0 / 0 / 0
Регистрация: 13.08.2021
Сообщений: 19
|
|
17.08.2021, 12:35 [ТС] | 28 |
AzAtom, Огромнейшее тебе спасибо!
Я теперь разобрался как работает "sincos" и теперь при использовании изображения 100х100 время выполнения примерно: 13 сек. при прямом и 12 сек. при обратном. Вот это я понимаю прирост скорость. Огромное спасибо Увы идей по ускорению больше нет. P.S. И у меня старенький ноутбук на AMD A10-5750M
0
|
17.08.2021, 12:35 | |
17.08.2021, 12:35 | |
Помогаю со студенческими работами здесь
28
Написать программу, которая выполняет вычисления по формуле Написать программу, которая выполняет следующие действия Разработать программу, которая выполняет следующие операции: Составить программу которая выполняет вызовы функций Составить программу которая выполняет следующие действия JS - Напишите программу, которая выполняет следующие действия: Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |