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 THREADING模块中的JOIN()方法深入理解
Feb 18 Python
python发送HTTP请求的方法小结
Jul 08 Python
python爱心表白 每天都是浪漫七夕!
Aug 18 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 Python
python里dict变成list实例方法
Jun 26 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
Python List列表对象内置方法实例详解
Oct 22 Python
基于pytorch中的Sequential用法说明
Jun 24 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
python unittest单元测试的步骤分析
Aug 02 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
php中定义网站根目录的常用方法
2010/08/08 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
浅析python内置模块collections
2019/11/15 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
测绘工程专业个人自我评价
2013/12/01 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
实习生评语
2014/04/26 职场文书
会计求职信
2014/05/29 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
python使用pymysql模块操作MySQL
2021/06/16 Python
Python制作表白爱心合集
2022/01/22 Python