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不带重复的全排列代码
Aug 13 Python
在Python中使用第三方模块的教程
Apr 27 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
python去除字符串中的换行符
Oct 11 Python
Python高级特性与几种函数的讲解
Mar 08 Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
Django 使用easy_thumbnails压缩上传的图片方法
Jul 26 Python
python 发送json数据操作实例分析
Oct 15 Python
Python3 A*寻路算法实现方式
Dec 24 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
python Tkinter模块使用方法详解
一行Python命令实现批量加水印
Apr 07 #Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
You might like
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python发腾讯微博代码分享
2014/01/10 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
华为慧通面试题
2012/09/11 面试题
2014年党务公开方案
2014/05/08 职场文书
骨干教师事迹材料
2014/12/17 职场文书
高中化学教学反思
2016/02/22 职场文书
Java 写一个简单的图书管理系统
2022/04/26 Java/Android