Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import copy
- def PrintArray(Arr):
- for rows in Arr:
- print(rows)
- OriginalA = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
- Kernel = [[-1, -2, -1], [0, 0, 0], [1, 2, 1]]
- kernelRows = len(Kernel)
- kernelCols = len(Kernel[0])
- middleR = int((kernelRows+1)/2)-1 #since row starts at 0
- middleC = int((kernelCols+1)/2)-1 #since col starts at 0
- RowsToAdd = int((kernelRows - 1)/2)
- ColsToAdd = int((kernelCols - 1)/2)
- A = copy.deepcopy(OriginalA)
- for r in A:
- for count in range(0, ColsToAdd):
- r.insert(kernelCols, 0)
- r.insert(0, 0)
- EmptyRow = []
- for i in range(0, len(A[0])):
- EmptyRow.insert(0, 0)
- for j in range(0, RowsToAdd):
- A.insert(kernelRows, EmptyRow)
- A.insert(0, EmptyRow)
- for row in range(0, len(OriginalA)):
- for col in range(0, len(OriginalA[0])):
- #CenterValue = A[row+RowsToAdd][col+ColsToAdd]
- TopLeft = A[row + RowsToAdd - 1][col + ColsToAdd -1] * Kernel[middleR -1][middleC -1]
- TopMiddle = A[row + RowsToAdd - 1][col + ColsToAdd] * Kernel[middleR -1][middleC]
- TopRight = A[row + RowsToAdd -1][col + ColsToAdd + 1] * Kernel[middleR-1][middleC+1]
- MiddleLeft = A[row + RowsToAdd][col + ColsToAdd-1] * Kernel[middleR][middleC-1]
- Middle = A[row + RowsToAdd][col + ColsToAdd] * Kernel[middleR][middleC]
- MiddleRight = A[row + RowsToAdd][col + ColsToAdd+1] * Kernel[middleR][middleC+1]
- BottomLeft = A[row + RowsToAdd+1][col + ColsToAdd-1] * Kernel[middleR+1][middleC-1]
- BottomMiddle = A[row + RowsToAdd+1][col + ColsToAdd] * Kernel[middleR+1][middleC]
- BottomRight = A[row + RowsToAdd+1][col + ColsToAdd+1] * Kernel[middleR+1][middleC+1]
- FinalValue = TopLeft+TopMiddle+TopRight+MiddleLeft+Middle+MiddleRight+BottomLeft+BottomMiddle+BottomRight
- print(FinalValue)
- PrintArray(A)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement