Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 이미지 뒤집기

<시간/>

이진 행렬 A가 있다고 가정하고 이것이 이미지의 표현이고 이미지를 수평으로 뒤집고 반전한 후 최종적으로 결과 이미지를 반환하려고 합니다. 이미지를 수평으로 뒤집으려면 이미지의 각 행이 반전됩니다. 그리고 이미지를 반전시키려면 각각의 0이 1로 대체되고 각각의 1이 0으로 대체됩니다.

따라서 입력이 다음과 같으면

1 1 0
1 0 1
0 0 0

그러면 출력은

1 0 0
0 1 0
1 1 1

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 결과:=새 목록
  • A의 각 행 i에 대해 다음을 수행합니다.
    • 역방향:=i행 역방향
    • 범위 0에서 역방향 크기의 j에 대해 다음을 수행합니다.
      • Reverse[j]가 1과 같으면
        • 역방향[j]:=0
      • 그렇지 않으면
        • 역방향[j]:=1
    • 결과 끝에 반전 삽입
  • 반환 결과

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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