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爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
Python入门教程之运算符与控制流
Aug 17 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
python实现批量nii文件转换为png图像
Jul 18 Python
django之自定义软删除Model的方法
Aug 14 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
深入了解Python 方法之类方法 & 静态方法
Aug 17 Python
Python程序慢的重要原因
Sep 04 Python
python入门之算法学习
Apr 22 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
php设计模式 Adapter(适配器模式)
2011/06/26 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
使用js如何实现全选与全不选
2013/12/30 Javascript
js表头排序实现方法
2015/01/16 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
node 版本切换的实现
2020/02/02 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
python使用psutil模块获取系统状态
2016/08/27 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
python实现指定ip端口扫描方式
2019/12/17 Python
python3 实现调用串口功能
2019/12/26 Python
如何使用python传入不确定个数参数
2020/02/18 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
幼儿园家长寄语
2014/04/02 职场文书
工作会议方案
2014/05/21 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
Elasticsearch 基本查询和组合查询
2022/04/19 Python
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python