在 Python 中翻转图像
pythonserver side programmingprogramming更新于 2023/11/9 20:22:00
假设我们有一个二进制矩阵 A,这是图像的表示,我们想要水平翻转图像,然后反转它,最后返回结果图像。要水平翻转图像,图像的每一行都将被反转。而要反转图像,每个 0 将被 1 替换,每个 1 将被 0 替换。
因此,如果输入如下
1 | 1 | 0 |
1 | 0 | 1 |
0 | 0 | 0 |
则输出将是
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 |
为了解决这个问题,我们将遵循以下步骤 −
- result:= 一个新列表
- 对于 A 中的每一行 i,执行
- 反向:= 反向行 i
- 对于 0 到反向大小范围内的 j,执行
- 如果 Reverse[j] 与 1 相同,则
- 反向[j]:= 0
- 否则,
- Reverse[j]:= 1
- 如果 Reverse[j] 与 1 相同,则
- 在 result 末尾插入 Reverse
- 返回 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]]