前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV二值图象分析之Blob分析找圆

OpenCV二值图象分析之Blob分析找圆

作者头像
OpenCV学堂
发布2021-11-16 11:40:05
1.7K0
发布2021-11-16 11:40:05
举报

好久没有给大家分享点有用的知识了,今天正好有空,而且有个很好的问题,所以就分享一下吧

01

问题描述与处理

今天有个来自我B站OpenCV C++快速入门30讲的网友提问,他发了一张图给我,想找到出图象上的四个圆的圆心位置,原图如下:

二值化之后如下:

形态学开操作之后如下:

Blob分析得到的结果如下:

完整流程图示如下:

02

代码演示

代码不足二十行就搞定了,但是涉及的到知识点包括二值化、形态学处理、Blob分析等。代码如下:

代码语言:javascript
复制
import cv2 as cv
import numpy as np

image = cv.imread("D:/images/vm_test/circle_det.png")
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
se = cv.getStructuringElement(cv.MORPH_RECT, (13, 13))
binary = cv.morphologyEx(binary, cv.MORPH_OPEN, se)

params = cv.SimpleBlobDetector_Params()
detector = cv.SimpleBlobDetector.create(params)
keypoints = detector.detect(binary)
blob_info = []
for kp in keypoints:
    cv.circle(image, (np.int(kp.pt[0]), np.int(kp.pt[1])), 3, (0, 255, 0), -1, 8)
    cv.circle(image, (np.int(kp.pt[0]), np.int(kp.pt[1])), np.int(kp.size/2), (0, 0, 255), 2, 8)
cv.imwrite("D:/result.png", image)
cv.waitKe
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档