Computer >> Máy Tính >  >> Lập trình >> Python

Lật một hình ảnh bằng Python

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

Vì vậy, nếu đầu vào giống như

1 1 0
1 0 1
0 0 0

thì đầu ra sẽ là

1 0 0
0 1 0
1 1 1

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • kết quả:=một danh sách mới
  • đối với mỗi hàng tôi trong A, thực hiện
    • Reverse:=đảo ngược hàng thứ i
    • đối với j trong phạm vi 0 đến kích thước của Đảo ngược, thực hiện
      • nếu Reverse [j] giống với 1, thì
        • Đảo ngược [j]:=0
      • nếu không,
        • Đảo ngược [j]:=1
    • chèn Đảo ngược vào cuối kết quả
  • trả về kết quả

Hãy cùng chúng tôi xem cách 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]]