我有一個圖像的像素數據陣列。我得到的圖像已經旋轉到270度。所以我試圖再次旋轉90度以獲得正確的圖像。我已經嘗試了轉置算法,將data[x][y]
更改爲data[y][x]
,但我不認爲這是正確的方法。任何人都可以指導我怎樣才能讓它旋轉?將2D像素陣列旋轉90度
5
A
回答
7
這可以在不使用任何額外空間的情況下完成,因此稱爲In-place matrix transposition(不完全相同)。記得在轉位後做一些鏡像。
如果圖像是正方形
如果圖像不是方形
- 對於非方陣,該算法更復雜。 1980年以前的許多算法可以被描述爲「循環週期」算法。也就是說,他們在循環中循環,將數據從一個位置移動到另一個位置。在僞代碼形式:
14
5
如果你想要做的就地O(1)空間,你可以按照這個:
轉置矩陣通過交換
data[i][j]
和data[j][i]
:for (int i = 0; i < n; i += 1){ for (int j = i+1; j < n; j += 1){ swap(data[i][j], data[j][i]); } }
分別將每行或列反轉爲+90或-90度的旋轉。例如,對於+90度的旋轉:
for (int i = 0; i < n; i += 1){ for (int j = 0; j < n/2; j += 1){ swap(data[i][j], data[i][n-1-j]); } }
相關問題
- 1. 順時針旋轉2D轉換1D陣列90度
- 2. 將2D陣列旋轉45度
- 3. 順時針旋轉2d向量90度
- 4. 爲多維NumPy陣列旋轉90度的圖像
- 5. 將列表項目旋轉90度
- 6. 旋轉像素陣列
- 7. 如何將90度旋轉標籤與像素完美對齊?
- 8. 90 * n度旋轉矩陣CW
- 9. 旋轉M * N矩陣(90度)
- 10. 瞭解如何旋轉矩陣90度
- 11. 旋轉numpy 2D陣列
- 12. swaping和旋轉2D陣列
- 13. 向右旋轉2d陣列
- 14. 旋轉CALayer 90度?
- 15. 旋轉臺90度
- 16. CGAffineTransform旋轉90度
- 17. C - 使用一個陣列將圖像旋轉90度(右和左) - 位圖
- 18. 將矩陣內的矩陣旋轉90度
- 19. 2D像素陣列的旋轉和縮放
- 20. 旋轉90度/ -90度的圖像模糊jquery rotate
- 21. UIImagePNGRepresentation問題? /圖像旋轉90度
- 22. 在Chrome中旋轉90度的圖像
- 23. 順時針旋轉90度的圖像
- 24. 在C中旋轉PPM圖像90度
- 25. Kineticjs - 順時針旋轉圖像90度
- 26. OpenCV中的圖像旋轉(90度)
- 27. 旋轉矩陣/圖像的公式90度C++
- 28. 根據其他圖像的位置將圖像旋轉90度
- 29. C++向量的向量。陣列旋轉90度
- 30. 在MPI中旋轉90度的二維陣列
這是唯一的辦法。您可以並行化流程以使其更快。 –