我试图检测下图中的圆圈阵列。 幸运的是,我在互联网上找到了一个python代码。然而,它不起作用,我不知道问题是什么。请让我知道好的解决方案,并介绍一个简单的方法来检测所有的圆阵列的图片
这是我在网上找到的代码
import numpy as np
import cv2 as cv
img = cv.imread('circles0.png')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
ret, corners = cv.findCirclesGrid(gray, (4,9), None, flags = cv.CALIB_CB_ASYMMETRIC_GRID)
if ret == True:
corners2 = corners
# corners2 = cv.cornerSubPix(gray,corners, (11,11), (-1,-1), (cv.TERM_CRITERIA_EPS + cv.TERM_CRITERIA_MAX_ITER, 30, 0.001))
cv.drawChessboardCorners(img, (4,9), corners2, ret)
cv.imwrite('output.jpg', img)
cv.imshow('img', img)
cv.waitKey(0)
您正在使用的代码是寻找一个4行9列的圆形直线网格
您使用的图像与该标准不匹配
在图像Hough Circle Transform中的任意位置查找圆可能是您对图像的最佳选择
试试下面的&;请注意
cv2.HoughCircles()
中的参数对图像非常敏感输出
相关问题 更多 >
编程相关推荐