用 Python 翻转图像
假设我们有一个二进制矩阵 A,这是图像的表示,我们想要水平翻转该图像,然后对它求反,最后返回结果图像。要水平翻转图像,图像的每一行都将被反转。要对图像求反,每个 0 将被替换为 1,而每个 1 将被替换为 0。
因此,如果输入如下
1 | 1 | 0 |
1 | 0 | 1 |
0 | 0 | 0 |
则输出为
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
为了解决这个问题,我们将遵循以下步骤 -
- result:= 一个新列表
- 对 A 中的每行 i 执行以下操作
- Reverse:= 反转行 i
- 对 0 到 Reverse 大小的 j 进行以下操作
- 如果 Reverse[j] 与 1 相同,则
- Reverse[j]:= 0
- 否则
- Reverse[j]:= 1
- 如果 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]]
广告