圖像旋轉的點坐標映射公式匯總


一、旋轉點坐標映射公式

逆時針旋轉:

x'=x*cos(a)-y*sin(a);

y'=x*sin(a)+y*cos(a);

-----------------------------

正向映射公式,同時引入旋轉中心平移:

x'= (x - rx0)*cos(RotaryAngle) + (y - ry0)*sin(RotaryAngle) + rx0 ;

y'=-(x - rx0)*sin(RotaryAngle) + (y - ry0)*cos(RotaryAngle) + ry0 ;

-------------------------------

反向映射公式:

x=(x'- rx0)*cos(RotaryAngle) - (y'- ry0)*sin(RotaryAngle) + rx0 ;  

y=(x'- rx0)*sin(RotaryAngle) + (y'- ry0)*cos(RotaryAngle) + ry0 ;

-----------------------------------

加入考慮坐標平移和縮放:

x=(x'- move_x-rx0)/ZoomX*cos(RotaryAngle) - (y'- move_y-ry0)/ZoomY*sin(RotaryAngle) + rx0 ;  

y=(x'- move_x-rx0)/ZoomX*sin(RotaryAngle) + (y'- move_y-ry0)/ZoomY*cos(RotaryAngle) + ry0 ;


 二、公式推導

假設對圖片上任意點(x,y),繞一個坐標點(rx0,ry0)逆時針旋轉a角度后的新的坐標設為(x0, y0),有公式:
x0= (x - rx0)*cos(a) - (y - ry0)*sin(a) + rx0 ;
y0= (x - rx0)*sin(a) + (y - ry0)*cos(a) + ry0 ;

 在平面中,一個點繞任意點旋轉θ度后的點的坐標_百度經驗 https://jingyan.baidu.com/article/2c8c281dfbf3dd0009252a7b.html

 


 

【參考資料】

任意角度的高質量的快速的圖像旋轉 上篇 純軟件的任意角度的快速旋轉 - 裴銀祥的博客園 - 博客園 https://www.cnblogs.com/yinxiangpei/articles/3267267.html

中篇 高質量的旋轉 - 裴銀祥的博客園 - 博客園 https://www.cnblogs.com/yinxiangpei/articles/3267272.html

圖像旋轉的原理,實現與優化 - CSDN博客 https://blog.csdn.net/qianqing13579/article/details/52504089

快速圖像旋轉算法的c++實現 - CSDN博客 https://blog.csdn.net/xiaoheiblack/article/details/79026239

python 簡單圖像處理4旋轉-echojb.com http://www.echojb.com/image/2016/11/14/258268.html

C++和matlab-圖像旋轉 - Qingsong_Zhao - 博客園 https://www.cnblogs.com/QingsongZhao-siat/p/8643082.html

圖像處理學習筆記之圖像的幾何變換(3)旋轉變換 - CSDN博客 https://blog.csdn.net/linshanxian/article/details/68944748

(實驗二) --- 圖像旋轉變換---matlab實現 - CSDN博客 https://blog.csdn.net/abee23/article/details/7398749

【其他】

matlab練習程序(圖像旋轉,雙線性插值) - Dsp Tian - 博客園 https://www.cnblogs.com/tiandsp/archive/2012/12/03/2800373.html

matlab練習程序(圖像旋轉,最鄰近插值) - Dsp Tian - 博客園 http://www.cnblogs.com/tiandsp/archive/2012/03/08/2385369.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM