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开发之for循环操作实例详解
Nov 12 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
python使用标准库根据进程名如何获取进程的pid详解
Oct 31 Python
Python3.6 Schedule模块定时任务(实例讲解)
Nov 09 Python
PyCharm在win10的64位系统安装实例
Nov 26 Python
Python OpenCV 直方图的计算与显示的方法示例
Feb 08 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
10行Python代码计算汽车数量的实现方法
Oct 23 Python
tensorflow多维张量计算实例
Feb 11 Python
Python读写操作csv和excle文件代码实例
Mar 16 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
phpBB BBcode处理的漏洞
2006/10/09 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
python中字典(Dictionary)用法实例详解
2015/05/30 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
浅谈react路由传参的几种方式
2021/03/23 Javascript
大学生职业生涯规划方案
2014/01/03 职场文书
投标保密承诺书
2014/05/19 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
2014年行政部工作总结
2014/11/19 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
《实心球》教学反思
2016/02/23 职场文书