Python+OpenCV实现图片中的圆形检测


Posted in Python onApril 07, 2022

效果展示

Python+OpenCV实现图片中的圆形检测

Python+OpenCV实现图片中的圆形检测

Python+OpenCV实现图片中的圆形检测

中心的三个没检测到

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
w = 20
h = 5
params = cv2.SimpleBlobDetector_Params()
# Setup SimpleBlobDetector parameters.
print('params')
print(params)
print(type(params))
 
 
# Filter by Area.
params.filterByArea = True
params.minArea = 10e1
params.maxArea = 10e3
 
params.minDistBetweenBlobs = 25
 
 
# params.filterByColor = True
params.filterByConvexity = False
 
# tweak these as you see fit
# Filter by Circularity
# params.filterByCircularity = False
# params.minCircularity = 0.2
 
# params.blobColor = 0
# # # Filter by Convexity
# params.filterByConvexity = True
# params.minConvexity = 0.87
 
# Filter by Inertia
# params.filterByInertia = True
# params.filterByInertia = False
# params.minInertiaRatio = 0.01
 
 
# img = cv2.imread("circles/circels.jpg",1)
img = cv2.imread("circles/Snap_001.jpg",1)
 
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# Detect blobs.
# image = cv2.resize(gray_img, (int(img.shape[1]/4),int(img.shape[0]/4)), 1, 1, cv2.INTER_LINEAR)
# image = cv2.resize(gray_img, dsize=None, fx=0.25, fy=0.25, interpolation=cv2.INTER_LINEAR)
minThreshValue = 120
_, gray = cv2.threshold(gray, minThreshValue, 255, cv2.THRESH_BINARY)
gray = cv2.resize(gray, dsize=None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)
# plt.imshow(gray)
# cv2.imshow("gray",gray)
 
detector = cv2.SimpleBlobDetector_create(params)
keypoints = detector.detect(gray)
 
print(len(keypoints))
 
 
fig = plt.figure()
# im_with_keypoints = cv2.drawKeypoints(gray, keypoints, np.array([]), (0, 0, 255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
im_with_keypoints = cv2.drawKeypoints(gray, keypoints, np.array([]), (0, 0, 255),  cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
 
plt.imshow(cv2.cvtColor(im_with_keypoints, cv2.COLOR_BGR2RGB),interpolation='bicubic')
fname = "key points"
titlestr = '%s found %d keypoints' % (fname, len(keypoints))
plt.title(titlestr)
plt.show()
 
# cv2.imshow("graykey",gray)
# cv2.waitKey()
 
fig.canvas.set_window_title(titlestr)
 
ret, corners = cv2.findCirclesGrid(gray, (w, h), flags=(cv2.CALIB_CB_SYMMETRIC_GRID + cv2.CALIB_CB_CLUSTERING ), blobDetector=detector )
if corners is not None:
    cv2.drawChessboardCorners(img, (w, h), corners, corners is not None)
    print("find blob")
# # cv2.imshow('findCorners', img)
# cv2.waitKey()
    plt.imshow(img)
plt.show()

以上就是Python+OpenCV实现图片中的圆形检测的详细内容,更多关于Python OpenCV圆形检测的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现颜色空间转换程序(Tkinter)
Dec 31 Python
Python实现注册登录系统
Aug 08 Python
网红编程语言Python将纳入高考你怎么看?
Jun 07 Python
详解python读取和输出到txt
Mar 29 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
Django如何简单快速实现PUT、DELETE方法
Jul 24 Python
对于Python深浅拷贝的理解
Jul 29 Python
python实现的读取网页并分词功能示例
Oct 29 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
django正续或者倒序查库实例
May 19 Python
python中的django是做什么的
Jul 31 Python
python 5个实用的技巧
Sep 27 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
PHP常用的三种设计模式
2017/02/17 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
javascript 面向对象编程基础:继承
2009/08/21 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
Django开发的简易留言板案例详解
2018/12/04 Python
python的依赖管理的实现
2019/05/14 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
Django Rest framework权限的详细用法
2019/07/25 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
PyTorch安装与基本使用详解
2020/08/31 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
django中cookiecutter的使用教程
2020/12/03 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
医学院毕业生自荐信
2013/11/08 职场文书
酒店副总岗位职责
2013/12/24 职场文书
优秀实习生感言
2014/03/01 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang