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

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

01

问题描述与处理

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


二值化之后如下:


形态学开操作之后如下:


Blob分析得到的结果如下:


完整流程图示如下:


02

代码演示

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

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

文章来源:小白学视觉

https://mp.weixin.qq.com/s/z9gnBIZsxJK9z_vx5iyMVQ

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-647.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档