用 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 次浏览

开启你的 职业生涯

通过完成该课程获得认证

开始
广告