Untitled
unknown
plain_text
2 years ago
1.1 kB
5
Indexable
function output_image = my_convolution(input_image, kernel)
[rows, cols] = size(input_image);
[k_rows, k_cols] = size(kernel);
pad_rows = floor(k_rows / 2);
pad_cols = floor(k_cols / 2);
% Inicjalizacja obrazu wyjściowego
output_image = zeros(rows, cols);
% Operacja splotu
for i = 1 + pad_rows : rows - pad_rows
for j = 1 + pad_cols : cols - pad_cols
patch = input_image(i-pad_rows:i+pad_rows, j-pad_cols:j+pad_cols);
output_image(i, j) = sum(sum(double(patch) .* kernel));
end
end
end
% Przykładowe użycie:
input_image = imread('lena.png'); % Załaduj obraz
input_image = rgb2gray(input_image); % Konwertuj na obraz w odcieniach szarości
kernel = fspecial('gaussian', [3 3], 1); % Przykładowy kernel
output_image = my_convolution(input_image, kernel); % Wywołaj funkcję
% Wyświetlenie obrazów
subplot(1, 2, 1), imshow(input_image), title('Obraz wejściowy');
subplot(1, 2, 2), imshow(uint8(output_image)), title('Obraz wyjściowy po filtracji splotowej');
Editor is loading...
Leave a Comment