Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การพลิกรูปภาพใน Python


สมมติว่าเรามีเมทริกซ์ไบนารี A นี่คือการแสดงภาพ เราต้องการพลิกภาพในแนวนอน หลังจากนั้นกลับด้าน และสุดท้ายส่งคืนภาพที่ได้ หากต้องการพลิกภาพในแนวนอน แต่ละแถวของภาพจะกลับด้าน และในการกลับภาพแต่ละ 0 จะถูกแทนที่ด้วย 1 และแต่ละ 1 จะถูกแทนที่ด้วย 0

ดังนั้นหากอินพุตเป็นแบบ

1 1 0
1 0 1
0 0 0

แล้วผลลัพธ์ที่ได้จะเป็น

1 0 0
0 1 0
1 1 1

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ผลลัพธ์:=รายการใหม่
  • สำหรับแต่ละแถว i ใน A ทำ
    • ย้อนกลับ:=กลับแถว i
    • สำหรับ j ในช่วง 0 ถึงขนาดของ Reverse ให้ทำ
      • ถ้า 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]]