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的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
AI人工智能 Python实现人机对话
Nov 13 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
浅谈Django的缓存机制
Aug 23 Python
python使用time、datetime返回工作日列表实例代码
May 09 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
ubuntu上安装python的实例方法
Sep 30 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
使用python实现CGI环境搭建过程解析
Apr 28 Python
python中取绝对值简单方法总结
Jul 24 Python
python制作抽奖程序代码详解
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写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
javascript如何创建对象
2016/08/29 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
PyQt5实现简易电子词典
2019/06/25 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
大四学生毕业自荐信
2013/11/07 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
初中中等生评语
2014/12/29 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL