Я хочу реализовать некоторые алгоритмы обработки изображений, которые предназначены для работы на beagleboard. Эти алгоритмы широко используют свертки. Я пытаюсь найти хорошую реализацию C для двумерной свертки (возможно, используя Fast Fourier Transform). Я также хочу, чтобы алгоритм мог работать на DSP beagleboard, потому что я слышал, что DSP оптимизирован для таких операций (с инструкцией по умножению накоплений).Быстрая двумерная свертка для DSP
У меня нет фона в поле, поэтому я думаю, что будет нецелесообразно реализовывать свертку (я, вероятно, не буду делать это так хорошо, как тот, кто понимает всю математику за ней). Я считаю, что хорошая реализация C-свертки для DSP существует где-то, но я не смог ее найти?
Может кто-нибудь помочь?
EDIT: Оказывается, ядро довольно мало. Его размеры - 2X2 или 3X3. Поэтому, я думаю, я не ищу реализацию на основе FFT. Я искал свертку в Интернете, чтобы увидеть ее определение, чтобы я мог реализовать его прямолинейно (я действительно не знаю, что такое свертка). Все, что я нашел, это нечто с умноженными интегралами, и я не знаю, как это сделать с помощью матриц. Может ли кто-нибудь дать мне фрагмент кода (или псевдокода) для случая ядра 2X2?
http://en.wikipedia.org/wiki/Convolution#Discrete_convolution –
@Peter : Спасибо, но они говорят о 1D случае там, ничего о 2D свертке – snakile
2d свертки (в обработке изображений) часто отделимы, поэтому их можно запустить как 2 1-й свертки в последовательности. Это значительно снижает требования к обработке. Можете ли вы привести примеры видов ядер, которые вы хотите использовать? –