首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用python cv2.SimpleBlobDetector来检测图像中单个最大的点?

如何使用python cv2.SimpleBlobDetector来检测图像中单个最大的点?
EN

Stack Overflow用户
提问于 2021-09-21 20:34:11
回答 1查看 38关注 0票数 0

我已经使用python中的cv2来定位轮廓线,找到我想要处理的图像部分,现在我需要定位图像中最大点的中心,如下所示,但我猜我不理解参数是如何工作的,因为它可以识别其他较小的点,而不是我试图检测的较大点。我使用以下测试代码:

代码语言:javascript
运行
复制
params = cv2.SimpleBlobDetector_Params()

params.filterByCircularity = True
params.minCircularity = 0.1

params.filterByArea = True
params.minArea = 20.

ver = (cv2.__version__).split('.')
if int(ver[0]) < 3 :
    detector = cv2.SimpleBlobDetector(params)
else : 
    detector = cv2.SimpleBlobDetector_create(params)

keypoints = detector.detect(cropped_img)
for kp in keypoints:
    print("(%d, %d) size=%.1f resp=%.1f" % (kp.pt[0], kp.pt[1], kp.size, kp.response))


im_with_keypoints = cv2.drawKeypoints(cropped_img, keypoints, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imwrite(img_path.replace('.png', '-cropped2.png'), im_with_keypoints)

也许我用我测试过的值来处理这个问题是错误的,或者使用了错误的参数,但如果能得到一些帮助,我将不胜感激。我正在尝试检测第一张图像中红色箭头指示的较大的斑点。在第一个图像上运行此代码将生成第二个图像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-24 11:55:43

因此,另一天的研究和解决方案是使用结构元素而不是斑点检测器。在这种情况下,由于相交的线,斑点没有被检测到,如果与线隔离,它将工作。在图像中搜索特定大小的结构化元素效果很好。我想我应该发布这段代码来回答我自己的问题,以防有人遇到这个问题,这可能会把他们引向另一条道路。

创建结构化元素就是这类图像的解决方案。

代码语言:javascript
运行
复制
gray = cv2.cvtColor(cropped_img,cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
round_kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (10,10))
detected_ball = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, round_kernel, iterations=2)
cnts = cv2.findContours(detected_ball, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
color = cv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)
for c in cnts:
    x,y,w,h = cv2.boundingRect(c)
    if x > 1 and y > 1:
        cv2.drawContours(color, [c], -1, (0,0,255), 3)

结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69275236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档