[英]python rotate image by 90 degrees without using any libs
有很多使用OpenCV或PIL將img旋轉90度的方法,如何通過自行設計的代碼而不使用任何庫來實現? 我已經嘗試過旋轉矩陣的方式,但是RGB元素使其失敗
您可以通過轉置和反射的組合將像素網格旋轉90°。 您可以在純Python中執行此操作,方法是使用zip
進行轉置,然后reversed
進行反映。
這是一個簡短的演示,它可以順時針旋轉90°。
# Some fake pixels
data = [
[(100, 101, 102), (105, 106, 107), (110, 111, 112), (115, 116, 117)],
[(120, 121, 122), (125, 126, 127), (130, 131, 132), (135, 136, 137)],
[(140, 141, 142), (145, 146, 147), (150, 151, 152), (155, 156, 157)],
[(160, 161, 162), (165, 166, 167), (170, 171, 172), (175, 176, 177)],
[(180, 181, 182), (185, 186, 187), (190, 191, 192), (195, 196, 197)],
]
new = [list(reversed(t)) for t in zip(*data)]
for row in new:
print(row)
輸出
[(180, 181, 182), (160, 161, 162), (140, 141, 142), (120, 121, 122), (100, 101, 102)]
[(185, 186, 187), (165, 166, 167), (145, 146, 147), (125, 126, 127), (105, 106, 107)]
[(190, 191, 192), (170, 171, 172), (150, 151, 152), (130, 131, 132), (110, 111, 112)]
[(195, 196, 197), (175, 176, 177), (155, 156, 157), (135, 136, 137), (115, 116, 117)]
但是,嚴重的是,使用庫執行這種操作更快(更簡單),除非圖像很小。 如果您不想使用PIL,則可以使用Numpy。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.