【问题标题】:Finding circle function and center in Python在 Python 中查找圆函数和圆心
【发布时间】:2020-06-01 23:32:57
【问题描述】:

我有一个数据集 (512 X 512),它是一个二维数组。这是我根据这个数据集绘制的图。

数据如下所示:

[[239 247 214 ... 466 511 415]
 [257 283 254 ... 460 474 474]
 [219 251 268 ... 458 475 496]
 ...
 [372 382 428 ... 641 615 707]
 [394 369 408 ... 681 592 706]
 [357 377 358 ... 696 566 708]]

有什么方法可以得到圆的函数和圆心位置吗?

我应该做一些背景减法以使圆圈更清晰吗?

我真的不知道该从哪里开始。需要帮忙。非常感谢!!!

这是我如何绘制图形的代码。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

data = pd.read_csv('D:/data set.csv', header=None)


# create data
data = np.array(data)

#plot data
fig, ax = plt.subplots(figsize=(5, 5)) 
side = np.linspace(0,512,513)
X,Y = np.meshgrid(side,side)
Z = [[data[i][j] for j in range(len(data[0]))]for i in range(len(data))]
plt.pcolormesh(X,Y,Z, cmap=plt.cm.get_cmap('Greys'))

ax = plt.gca()
ax.set_aspect('equal', 'box')

plt.colorbar(fraction=0.0455)

plt.show()

现在我发现我可以使用 HoughCircle 来检测我的情节中的圆圈。但是有什么方法可以得到HoughCircle检测到的绿色圆圈和红色中心的方程吗?

这是HoughCircle的编码:

import cv2
import numpy as np
import matplotlib.pyplot as plt

bfp = cv2.imread('D:/circle.png')
gray_img = cv2.cvtColor(bfp, cv2.COLOR_BGR2GRAY)
img = cv2.medianBlur(gray_img, 5)   
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR) 

circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,120,

                           param1=80,param2=40,minRadius=0,maxRadius=0)

circles = np.uint16(np.around(circles))

for i in circles[0,:]:
   # draw the outer circle
   cv2.circle(bfp,(i[0],i[1]),i[2],(0,255,0),2)
   # draw the center of the circle
   cv2.circle(bfp,(i[0],i[1]),2,(0,0,255),3)
   print(cv2.circle(bfp,(i[0],i[1]),2,(0,0,255),3))

cv2.imshow("bfp_HoughCirlces", bfp)
cv2.waitKey()
cv2.destroyAllWindows()

【问题讨论】:

    标签: python pandas numpy opencv matplotlib


    【解决方案1】:

    (对不起,我无法评论这篇文章) 您可以获得每个维度的最大值和最小值。中心的坐标将是每个维度的最大值和最小值的平均值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-03
      相关资源
      最近更新 更多