在中學里學習過直角坐標系,也叫做笛卡爾坐標系,它是正交坐標系,不過也學習過極坐標系,這種坐標系比較適合大炮發射的場合。極坐標系的定義如下:
在 平面內取一個定點O, 叫極點,引一條射線Ox,叫做極軸,再選定一個長度單位和角度的正方向(通常取逆時針方向)。對于平面內任何一點M,用ρ表示線段OM的長度,θ表示從Ox到OM的角度,ρ叫做點M的極徑,θ叫做點M的極角,有序數對 (ρ,θ)就叫點M的極坐標,這樣建立的坐標系叫做極坐標系。
極坐標很方便應用到雷達上面,因為雷達不斷地轉動,反射回來的波計算出距離,再與轉動的角度,就構成一個二維圖的坐標了。也有人采用這樣雷達圖來表示公式的銷售業績,這樣方便比較不同人的結果,可以看出每個人的差距。下面就使用python和matplotlib實現這樣的繪圖,讓我們對極坐標有一個明確的理解,以便后面展開從直角坐標到極坐標的變換學習,這個例子代碼如下:
#python 3.7.4,opencv4.1 #蔡軍生 https://blog.csdn.net/caimouse/article/details/51749579 # import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽 plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號 employee = ["張三", "李四", "蔡大", "龐二", "林五"] actual = [45, 53, 55, 61, 57, 45] expected = [50, 55, 60, 65, 55, 50] # 設置圖形大小和極坐標方式顯示 plt.figure(figsize=(5, 5)) plt.subplot(polar=True) #角度坐標生成 theta = np.linspace(0, 2 * np.pi, len(actual)) # 設置極坐標的標記 lines, labels = plt.thetagrids(range(0, 360, int(360/len(employee))), (employee)) # 在極坐標顯示銷售數值 plt.plot(theta, actual) plt.fill(theta, actual, 'b', alpha=0.1) # 極坐標顯示期望銷售數值 plt.plot(theta, expected) # 添加標注和標題 plt.legend(labels=('實際值', '期望值'), loc=1) plt.title("實際值 與 期望值對比") # 顯示點到屏幕 plt.show()
輸出結果如下:
總結
以上所述是小編給大家介紹的Python在OpenCV里實現極坐標變換功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
