gpt4 book ai didi

python - 在Python中查找圆函数和中心

转载 作者:行者123 更新时间:2023-12-02 17:24:24 26 4
gpt4 key购买 nike

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

数据如下:

[[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]]

enter image description here

有什么方法可以获取圆的功能和圆心?

我应该对背景减法做些什么来使圆圈更清晰吗?

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

这是我如何绘制图形的代码。
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检测到的绿色圆圈和红色中心的方程式吗?

enter image description here

这是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 - 在Python中查找圆函数和中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60272543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com