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 Informatics 第11章 正则表达式(一)
Apr 21 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
python远程调用rpc模块xmlrpclib的方法
Jan 11 Python
Python3 max()函数基础用法
Feb 19 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
Python生成随机验证码代码实例解析
Jun 09 Python
python中PyQuery库用法分享
Jan 15 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
nodejs实用示例 缩址还原
2010/12/28 NodeJs
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
python不带重复的全排列代码
2013/08/13 Python
Python 操作文件的基本方法总结
2017/08/10 Python
Django框架视图函数设计示例
2019/07/29 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
Python @property装饰器原理解析
2020/01/22 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
Whistles官网:英国女装品牌
2020/08/14 全球购物
即将毕业大学生自荐信
2014/01/24 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
iPhone13再次曝光
2021/04/15 数码科技