计算numpy数组中最亮的补丁的坐标的麻烦

时间:2019-06-04 04:00:11

标签: python-3.x opencv

我正在拍摄一张测试图像,找到我关心的兴趣点并裁剪出来以进行进一步分析。在这一点上,我只剩下一个圆的图像,我试图找到相对于圆心的明亮补丁的中心。我正在挣扎。自从我上大学简历课程以来已经有几年了

我已经尝试过这里给出的方法: https://www.pyimagesearch.com/2014/09/29/finding-brightest-spot-image-using-python-opencv/ 但是我可能实现了错误,因为即使在读取原始图像时也总是会出错,而且我还是想以numpy数组读取。

包含运行脚本和测试图像的PyCharms项目在此处托管 https://github.com/chauncyca/cerberus如果有帮助

def find_circles(filepath):
    img = cv2.imread(filepath, 0)
    img = cv2.medianBlur(img, 5)
    cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)

    circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 700,
                               param1=50, param2=30, minRadius=20, maxRadius=100)

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

    retval = {}
    for i in circles[0, :]:

        if in_range(EXPECTED, (i[0], i[1])):
            # draw the outer circle
            cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2)
            # draw the center of the circle
            cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3)

            # crop ROI around circle...?
            # make sure the bounds won't under-/overflow
            cropCoords = (max(0, i[1] - CROPSIZE[0] // 2), min(img.shape[0], i[1] + CROPSIZE[0] // 2),
                          max(0, i[0] - CROPSIZE[1] // 2), min(img.shape[1], i[0] + CROPSIZE[1] // 2))
            crop_cimg = cimg[cropCoords[0]:cropCoords[1],
                        cropCoords[2]:cropCoords[3]]

在这里,我想获取numpy数组“ crop_cimg”,并检索亮点的中心坐标。

0 个答案:

没有答案