Я думаю, вам будет труднее, чем вы думаете (не невозможно) эффективно фильтровать изображения по частям путем разделения - хотя это не редкость - потому что вы должны позаботиться о пересечениях плиток, составляющих разделенное изображение.
Как (я думаю) вы указали в своем вопросе, большинство пространственных фильтров (то есть те, которые основаны на свертке с некоторым ядром) используют эвристический подход на краях изображения, где ядро будет перекрываться «за пределами» границы изображения. Неизвестные значения пикселей могут быть проигнорированы, приняты равными нулю, отражены обратно от изображения и т. Д. В вашем случае эти эффекты будут возникать в разделах между фрагментами изображения, где у вас действительно фактически "отсутствует" пикселей. Этого можно избежать, убедившись, что плитки перекрывают друг друга, чтобы каждая плитка могла включать пиксели от своих соседей при применении фильтра. То же самое применимо и к области Фурье - и вам также необходимо убедиться, что ваши плитки достаточно велики, чтобы содержать все частоты, которые вы хотите сохранить.
Второй момент - вы говорите, что для размытия «математически, я думаю, мы потеряем некоторые из нижних частот», но на самом деле вы сохраняете низкие частоты и теряете высокие частоты, т.е. в области Фурье размытие - это фильтр нижних частот.
Если вы разбиваете на достаточно маленькие плитки, вероятно, будет быстрее, чтобы большинство операций фильтрации оставалось в пространственной области. Стоимость БПФ сведет на нет любую экономию, которую вы могли бы получить от многопоточности. Конечно, для некоторой фильтрации Фурье - например, деконволюции - вы должны использовать все изображение.
person
Roger Rowland
schedule
27.05.2013