Во-первых, вам нужно прочитать ваше изображение PGM в вашу структуру.Если вы не знаете, как это сделать, прочитайте о формате PGM .
. После того, как вы это сделаете, вам нужно создать свой фильтр.Судя по вашему слегка двусмысленному вопросу, вам нужен фильтр размером 3x3
.Теоретически вы можете повторно использовать структуру Image
для представления фильтра - содержимое фильтра (часть pixels
) будет зависеть от конкретного фильтра, который вы используете (например, лапласиан или собел).Получив фильтр, сверните его с изображением, которое вы загрузили на первом шаге.Технически, вы здесь, но если вы действительно хотите увидеть результат, вам нужно записать результат свертки в другой файл PGM.
Вам нужно будет написать свойсобственная функция свертки (это будет включать в себя часть «считать некоторую сумму», которую вы упомянули в своем вопросе).Вам также понадобятся ваши собственные функции ввода / вывода изображения, если они не были уже предоставлены.
Вывод свертки будет выглядеть примерно такобратите внимание, что было бы лучше разделить представление изображения в памяти и представление изображения в файловой системе в вашем проекте.Например, в настоящее время ваша Image
структура предполагает, что каждому изображению соответствует filename
, что будет бессмысленно, если Image
не был загружен из файловой системы (например, если это фильтр, который вы создали сами).