Hover over for Description!
rgb_image = size(image, 3);
matrix = zeros(size(image, 1), size(image, 2), rgb_image);
zero_rows_needed = floor(size(filter, 1) / 2);
zero_row = zeros(zero_rows_needed, size(image, 2), rgb_image);
image = [zero_row; image; zero_row];
zero_cols_needed = floor(size(filter, 2) / 2);
zero_col = zeros(size(image, 1), zero_cols_needed, rgb_image);
image = [zero_col image zero_col];
row_length_image = size(image, 1);
col_length_image = size(image, 2);
row_length_filter = size(filter, 1);
col_length_filter = size(filter, 2);
row = 1;
col = 1;
for i = 1:(row_length_image - row_length_filter + 1)
for j = 1:(col_length_image - col_length_filter + 1)
for k = 1:rgb_image
dot_product = sum(sum(image(i:(i+row_length_filter - 1), j:(j + col_length_filter - 1), k) .* filter));
matrix(row, col, k) = dot_product;
end;
col = col + 1;
end;
row = row + 1;
col = 1;
end;
output = matrix;