微信公众号:OpenCV学堂
关注获取更多计算机视觉与深度学习知识
好久没有给大家分享点有用的知识了,今天正好有空,而且有个很好的问题,所以就分享一下吧
今天有个来自我B站OpenCV C++快速入门30讲的网友提问,他发了一张图给我,想找到出图象上的四个圆的圆心位置,原图如下:
二值化之后如下:
形态学开操作之后如下:
Blob分析得到的结果如下:
完整流程图示如下:
代码不足二十行就搞定了,但是涉及的到知识点包括二值化、形态学处理、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
扫码查看OpenCV+Pytorch系统化学习路线图
推荐阅读
CV全栈开发者说 - 从传统算法到深度学习怎么修炼
Pytorch轻松实现经典视觉任务
教程推荐 | Pytorch框架CV开发-从入门到实战
OpenCV4 C++学习 必备基础语法知识三
OpenCV4 C++学习 必备基础语法知识二
OpenCV4.5.4 人脸检测+五点landmark新功能测试
OpenCV4.5.4人脸识别详解与代码演示