怎么检测图片里面的圆?

 时间:2026-02-15 12:27:22

1、图片灰度化。

g = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

怎么检测图片里面的圆?

2、用cv2.HoughCircles来检测灰度图里面的圆:

yuan0 = cv2.HoughCircles(g,cv2.HOUGH_GRADIENT,1,

                            100,param1=100,

                            param2=30,

                            minRadius=10,

                            maxRadius=300)

最小半径为10,最大半径为300。这个范围之外的圆都忽略掉。

怎么检测图片里面的圆?

3、把三维列表转化为二维列表:

yuans = yuan0[0,:,:]

怎么检测图片里面的圆?

4、对数据进行四舍五入,保留整数:

yuan = np.uint16(np.around(yuans))

怎么检测图片里面的圆?

5、用蓝色突显检测出来的圆:

for i in yuan[:]: 

    cv2.circle(img,(i[0],i[1]),i[2],(255,0,0),2)

检测结果不靠谱,很多圆是无中生有。

怎么检测图片里面的圆?

6、如果在g的基础上,先检测边界:

e = cv2.Canny(g,50,200)

怎么检测图片里面的圆?

7、再检测e里面的圆,效果会好一点。

整体代码如下图。

怎么检测图片里面的圆?

8、检测结果如下。

虽然有所改善,但还是不合实际。

怎么检测图片里面的圆?

  • 商丘离洛阳多少公里路
  • bless单词讲解视频
  • 计数单位有哪些
  • 小米平板4如何修改时间为24小时制
  • 北京在河北省境内吗
  • 热门搜索
    山西运城旅游景点 福建东山岛旅游攻略 巴黎旅游攻略 杭州周边旅游攻略 乌镇旅游官网 秦皇岛旅游地图 锦溪古镇旅游攻略 广州南沙旅游 四川稻城亚丁旅游攻略 南浦大桥旅游集散中心