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中使用PIL库实现图片高斯模糊实例
Feb 08 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
Windows下python2.7.8安装图文教程
May 26 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
Python将字符串常量转化为变量方法总结
Mar 17 Python
对python3中的RE(正则表达式)-详细总结
Jul 23 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
重写django的model下的objects模型管理器方式
May 15 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
Python使用for生成列表实现过程解析
Sep 22 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
浅谈php的优缺点
2015/07/14 PHP
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Python自动登录126邮箱的方法
2015/07/10 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
python多进程使用函数封装实例
2020/05/02 Python
python中return不返回值的问题解析
2020/07/22 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
自我评价范文分享
2014/01/04 职场文书
继承公证书样本
2014/04/04 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
节水宣传标语口号
2015/12/26 职场文书
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android