When processing grayscale pictures , use N*N Field matrix to filter each pixel in the image ( Similar to maximum, minimum and mean filtering ), The four corners of the image cannot be filtered because they are out of range , So you need to enlarge the original picture N//2 Pixel padding, And to prevent filtering padding The number of affects the final result , Therefore, you need to judge the number filled in by yourself .
The following is my packaging method , For your reference .
Parameter settings :
padding Increase the number of turns for , It's usually N//2
num For the number to be filled
matrix_row_size, matrix_col_size It's the size of the matrix , That is, the size of the original image
matrix Is the grayscale image read
def expand_matrix(padding, num, matrix_row_size, matrix_col_size, matrix):
matrix_larger = np.ones((matrix_row_size + padding * 2, matrix_col_size + padding * 2))
matrix_larger = matrix_larger * num
for row in range(padding, matrix_row_size + padding):
for col in range(padding, matrix_col_size + padding):
matrix_larger[row, col] = matrix[row - padding, col - padding]
return matrix_larger