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实现简单socket通信的方法
Apr 19 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
python监控文件并且发送告警邮件
Jun 21 Python
Python寻找两个有序数组的中位数实例详解
Dec 05 Python
详解python多线程之间的同步(一)
Apr 03 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
如何去掉文章里的 html 语法
2006/10/09 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python标准库os.path包、glob包使用实例
2014/11/25 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
详解python tkinter 图片插入问题
2020/09/03 Python
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
函授自我鉴定
2013/11/06 职场文书
中医药大学毕业生自荐信
2013/11/08 职场文书
销售心得体会
2014/01/02 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
升职演讲稿范文
2014/05/23 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
群众路线个人整改方案
2014/10/25 职场文书
英文自荐信范文
2015/03/25 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP