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安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
Python网络编程 Python套接字编程
Sep 13 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
django启动uwsgi报错的解决方法
Apr 08 Python
python  Django中的apps.py的目的是什么
Oct 15 Python
Python3.5文件修改操作实例分析
May 01 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
HTML的form表单和django的form表单
Jul 25 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
使用Keras构造简单的CNN网络实例
Jun 29 Python
用Python实现Newton插值法
Apr 17 Python
python实现腾讯滑块验证码识别
Apr 27 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
消息持续发送的完整例子
2006/10/09 PHP
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
vue-cli配置环境变量的方法
2018/07/09 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
银行实习的自我鉴定
2013/12/10 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
优秀通讯员事迹材料
2014/01/28 职场文书
优秀教师主要事迹
2014/02/01 职场文书
趣味运动会活动方案
2014/02/12 职场文书
初婚初育证明范本
2015/06/18 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle