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 相关文章推荐
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
python实现在windows服务中新建进程的方法
Jun 30 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
Python selenium抓取微博内容的示例代码
May 17 Python
目前最全的python的就业方向
Jun 05 Python
Python 保持登录状态进行接口测试的方法示例
Aug 06 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
Django 实现Admin自动填充当前用户的示例代码
Nov 18 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
Jun 23 Python
python+requests接口自动化框架的实现
Aug 31 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
PHP 中执行排序与 MySQL 中排序
2009/04/21 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
python用requests实现http请求代码实例
2019/10/31 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
Python偏函数实现原理及应用
2020/11/20 Python
法律专业实习鉴定
2013/12/22 职场文书
超市开店计划书
2014/09/15 职场文书
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
工作检讨书怎么写
2015/01/23 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers