首页
/
每日頭條
/
生活
/
opencv白色坐标怎麼設置
opencv白色坐标怎麼設置
更新时间:2026-10-31 04:37:00

函數 cv2.cartToPolar 用于将直角坐标(笛卡爾坐标)轉換為極坐标,函數 cv2.polarToCart 用于将極坐标轉換為直角坐标(笛卡爾坐标)。

圓形圖案邊緣上的文字經過及坐标變換後可以垂直的排列在新圖像的邊緣,便于對文字的識别和檢測。

函數說明:

cv2.cartToPolar(x, y[, magnitude[, angle[, angleInDegrees]]]) → magnitude, angle cv2.polarToCart(magnitude, angle[, x[, y[, angleInDegrees]]]) → x, y

函數 cv2.cartToPolar 實現将原點移動到變換中心後的直角坐标向極坐标的轉換,輸入參數為直角坐标系的橫坐标、縱坐标,輸出為極坐标系的向量值、角度值。

函數 cv2.polarToCart 實現将原點移動到變換中心後的極坐标向直角坐标的轉換,輸入參數為極坐标系的向量值、角度值,輸出為直角坐标系的橫坐标、縱坐标。

參數說明:
  1. x, y:直角坐标系的橫坐标、縱坐标,ndarray 多維數組,浮點型
  2. magnitude, angle:極坐标系的向量值、角度值,ndarray 多維數組
  3. angleInDegrees:弧度制/角度值選項,默認值 0 選擇弧度制,1 選擇角度制([0,360] )
  4. 返回值 magnitude, angle:極坐标系的向量值、角度值,ndarray 多維數組,與輸入的 x, y 具有相同的尺寸和數據類型
  5. 返回值 x, y:直角坐标系的橫坐标、縱坐标,ndarray 多維數組,與輸入的 magnitude, angle 具有相同的尺寸和數據類型
注意事項:
  1. 極坐标與直角坐标的變換在數學上是可逆的,但實際變換時存在誤差,角度計算精度約為 0.3度,坐标計算精度約為 1e-6。
  2. 直角坐标系以變換中心為圓心的同一個圓上的點,在極坐标系中顯示為一條直線。因此,用極坐标變換可以實現圓形物體的圖像修正。
  3. cv2.cartToPolar 中的可選項 magnitude, angle 可以用于指定變換中心的坐标,cv2.polarToCart 中的可選項 x, y 可以用于指定變換中心的坐标。
基本例程:1.45 直角坐标轉換為極坐标

# 1.45 直角坐标轉換為極坐标 x = np.float32([0,1,2, 0,1,2, 0,1,2]) -1 y = np.float32([0,0,0, 1,1,1, 2,2,2]) -1 n = np.arange(9) r, theta = cv2.cartToPolar(x, y, angleInDegrees=True) xr,yr = cv2.polarToCart(r, theta, angleInDegrees=1) print(xr,yr) plt.figure(figsize=(9,5)) plt.subplot(121), plt.title("Cartesian coordinate"), plt.plot(x, y, 'o') for i, txt in enumerate(n): plt.annotate(txt, (x[i], y[i])) plt.subplot(122), plt.title("Polar coordinate"), plt.plot(r, theta, 'o') for i, txt in enumerate(n): plt.annotate(txt, (r[i], theta[i])) plt.show()

擴展例程:1.46 極坐标系中的圓形圖像修正

# 1.46 極坐标系中的圓形圖像修正 img = cv2.imread("../images/imgC3.jpg") # 讀取彩色圖像(BGR) h, w = img.shape[:2] # 圖片的高度和寬度 cx, cy = int(w/2), int(h/2) # 以圖像中心點作為變換中心 maxR = max(cx, cy) # 最大變換半徑 imgPolar = cv2.linearPolar(img, (cx,cy), maxR, cv2.INTER_LINEAR) imgPR = cv2.rotate(imgPolar, cv2.ROTATE_90_COUNTERCLOCKWISE) plt.figure(figsize=(10,6)) plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title("Original"), plt.axis('off') plt.subplot(122), plt.imshow(cv2.cvtColor(imgPR, cv2.COLOR_BGR2RGB)), plt.title("PolarTrans"), plt.axis('off') plt.show()

通過極坐标和直角坐标的對應關系,将圓環圖像轉換為矩形圖像,可以對圓形圖像進行修正。

opencv白色坐标怎麼設置(直角坐标與極坐标的轉換)1

最後

【OpenCV學習之路】是針對Python OpenCV學習所打造的一場刷題狂歡party! 對基礎知識把握不牢固的話,歡迎來學習嗷~喜歡的話就抓緊收藏起來吧!

如果對學習沒有自制力或者沒有一起學習交流的動力,歡迎私我“進群”,邀請你來我的學習交流群,我們一起交流學習,報團打卡!

opencv白色坐标怎麼設置(直角坐标與極坐标的轉換)2

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
細菌真的厲害
細菌真的厲害
提到細菌,您肯定不陌生。它們是地球上最原始也最基礎的生命形态,但細菌卻并不低賤卑微,除了在生物圈中發揮不可或缺的重要功能,它們還具有令人咋舌的智慧。關于這一點,格雷戈·貝爾在1984發表的科幻名篇《血裡的音樂》裡有過精彩的描述:為了簡化過程...
2026-10-31
紅燒大排怎麼燒
紅燒大排怎麼燒
紅燒大排怎麼燒?把大排洗幹淨,洗幹淨後裝碗,接着加鹽,加糖,加生抽,加生粉攪拌均勻,把蔥洗幹淨,切好備用,今天小編就來說說關于紅燒大排怎麼燒?下面更多詳細答案一起來看看吧!紅燒大排怎麼燒把大排洗幹淨,洗幹淨後裝碗,接着加鹽,加糖,加生抽,加...
2026-10-31
洗衣機出現e1怎麼打開洗衣機門
洗衣機出現e1怎麼打開洗衣機門
一、滾筒、波輪洗衣機通用1、進水口濾網用手逆時針旋下洗衣機端進水管螺絲,用尖嘴鉗拔出濾網,在水龍頭下,利用牙刷邊沖邊刷洗。根據家庭水質情況,至少一年打開檢查清洗一次。波輪洗衣機濾網拆卸滾筒洗衣機濾網拆卸波輪洗衣機進水濾網2、不要長時間浸泡髒...
2026-10-31
鬼谷子識人術遇事冷靜
鬼谷子識人術遇事冷靜
鬼谷子識人術遇事冷靜?從古至今,我們中國的民間就流傳着許許多多神妙的說法,尤其是老一輩人,對于這些更為看重,比如說我們經常說一個人,她的臉圓圓的,看着就像個有福氣的人;或者是這個人面黃肌瘦的,一看就沒有享福的命,聽起來似乎很玄乎,但是我們的...
2026-10-31
七步洗手做法步驟
七步洗手做法步驟
七步洗手做法步驟?首先,洗手掌在掌心中擠出洗手液,雙手掌心相對,手指并攏起來,兩隻手之間相互揉搓,下面我們就來說一說關于七步洗手做法步驟?我們一起去了解并探讨一下這個問題吧!七步洗手做法步驟首先,洗手掌。在掌心中擠出洗手液,雙手掌心相對,手...
2026-10-31
Copyright 2023-2026 - www.tftnews.com All Rights Reserved