Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
1.1 kB
2
Indexable
Never
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);
    
    % Dodanie paddingu do obrazu wejściowego
    padded_image = padarray(input_image, [pad_rows, pad_cols]);
    
    % Inicjalizacja obrazu wyjściowego
    output_image = zeros(rows, cols);
    
    % Operacja splotu
    for i = 1:rows
        for j = 1:cols
            patch = padded_image(i:i+k_rows-1, j:j+k_cols-1);
            output_image(i, j) = sum(sum(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');
Leave a Comment