Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Xoay hình ảnh (Rotate Image) trong Python


Giả sử chúng ta có một ma trận 2D, đại diện cho một hình ảnh. Chúng ta phải xoay hình ảnh này 90 độ theo chiều kim đồng hồ. Ví dụ, nếu hình ảnh là:

157
963
213

Kết quả sẽ là:

291
165
337

Để giải quyết, chúng ta làm theo các bước sau:

  • Xét temp_mat = [], col := độ dài ma trận - 1.
  • Với col từ 0 đến độ dài ma trận:
    • temp := [].
    • Với row từ độ dài ma trận - 1 giảm xuống -1:
      • Thêm matrix[row][col] vào temp.
    • Thêm temp vào temp_mat.
  • Với i từ 0 đến độ dài ma trận:
    • Với j từ 0 đến độ dài ma trận:
      • matrix[i][j] := temp_mat[i][j].

Ví dụ (Python)

Xem triển khai sau để hiểu rõ hơn:

class Solution(object):
    def rotate(self, matrix):
        temp_matrix = []
        column = len(matrix) - 1
        for column in range(len(matrix)):
            temp = []
            for row in range(len(matrix)-1, -1, -1):
                temp.append(matrix[row][column])
            temp_matrix.append(temp)
        for i in range(len(matrix)):
            for j in range(len(matrix)):
                matrix[i][j] = temp_matrix[i][j]
        return matrix

ob1 = Solution()
print(ob1.rotate([[1,5,7],[9,6,3],[2,1,3]]))

Đầu vào

[[1,5,7],[9,6,3],[2,1,3]]

Đầu ra

[[2,9,1],[1,6,5],[3,3,7]]