用 Python 翻轉影像


假設我們有一個二進位制矩陣 A,這是影像的表示,我們想要水平翻轉該影像,然後對它求反,最後返回結果影像。要水平翻轉影像,影像的每一行都將被反轉。要對影像求反,每個 0 將被替換為 1,而每個 1 將被替換為 0。

因此,如果輸入如下

110
101
000

則輸出為

100
010
111

為了解決這個問題,我們將遵循以下步驟 -

  • result:= 一個新列表
  • 對 A 中的每行 i 執行以下操作
    • Reverse:= 反轉行 i
    • 對 0 到 Reverse 大小的 j 進行以下操作
      • 如果 Reverse[j] 與 1 相同,則
        • Reverse[j]:= 0
      • 否則
        • Reverse[j]:= 1
    • 將 Reverse 插入到 result 的末尾
  • 返回 result

讓我們看看以下實現以獲得更好的理解 -

示例

 即時演示

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]]))

輸入

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

輸出

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

更新於: 2020 年 7 月 4 日

488 次瀏覽

開啟你的 職業生涯

透過完成該課程獲得認證

開始
廣告