tft每日頭條

 > 生活

 > opencv白色坐标怎麼設置

opencv白色坐标怎麼設置

生活 更新时间:2025-03-07 07:31:16

函數 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

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved