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

Lật Đảo Hình Ảnh (Flipping an Image) trong Python


Giả sử ta có một ma trận nhị phân A, đây là biểu diễn của một hình ảnh. Ta muốn lật hình ảnh theo chiều ngang, sau đó đảo ngược nó, và cuối cùng trả về hình ảnh kết quả. Để lật theo chiều ngang, mỗi hàng của hình ảnh sẽ được đảo ngược. Để đảo ngược, mỗi 0 sẽ được thay bằng 1, và mỗi 1 sẽ được thay bằng 0.

Ví dụ, nếu đầu vào là:

110
101
000

thì đầu ra sẽ là:

100
010
111

Để giải quyết, ta thực hiện các bước sau:

  • result := một danh sách mới
  • Với mỗi hàng i trong A, thực hiện:
    • Reverse := đảo ngược hàng i
    • Với j từ 0 đến kích thước của Reverse, thực hiện:
      • Nếu Reverse[j] bằng 1, thì:
        • Reverse[j] := 0
      • Ngược lại:
        • Reverse[j] := 1
    • Thêm Reverse vào cuối result
  • Trả về result

Hãy xem triển khai sau để hiểu rõ hơn:

Ví dụ

class Solution:    def flipAndInvertImage(self, A):       result = []       for i in A:           Reverse = i[::-1]           for j in range(len(Reverse)):             if Reverse[j] == 1:                 Reverse[j] = 0             else:                 Reverse[j] = 1             result.append(Reverse)       return result ob = Solution() print(ob.flipAndInvertImage([[1,1,0],[1,0,1],[0,0,0]]))

Đầu vào

[[1,1,0],[1,0,1],[0,0,0]]

Đầu ra

[[1, 0, 0], [0, 1, 0], [1, 1, 1]]