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脚本帮你找出微信上删除你好友的人
Jan 07 Python
Python实现堆排序的方法详解
May 03 Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
Python多进程fork()函数详解
Feb 22 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
Python常见的pandas用法demo示例
Mar 16 Python
python lxml中etree的简单应用
May 10 Python
深入学习python多线程与GIL
Aug 26 Python
python numpy中setdiff1d的用法说明
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连接MySQL进行增、删、改、查操作
2017/02/19 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
学Python 3的理由和必要性
2019/11/19 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
财务人员求职自荐书范文
2014/02/10 职场文书
投标授权委托书范文
2014/08/02 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
营销总监岗位职责
2014/09/16 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
会议通知
2015/04/15 职场文书
2015年领班工作总结
2015/04/29 职场文书
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
Ajax实现异步加载数据
2021/11/17 Javascript
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS
分享Python异步爬取知乎热榜
2022/04/12 Python