原图

结果

# coding:utf-8
import cv2
import numpy as np
import matplotlib.pyplot as pltdef mainFigure(img):w = 20h = 5params = cv2.SimpleBlobDetector_Params()# Setup SimpleBlobDetector parameters.# print('params')# print(params)# print(type(params))# Filter by Area.params.filterByArea = Trueparams.minArea = 10e1params.maxArea = 10e3params.minDistBetweenBlobs = 25# params.filterByColor = Trueparams.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.01gray= 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()# opencvim_with_keypoints = cv2.drawKeypoints(gray, keypoints, np.array([]), (255, 0, 0), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)# plt# im_with_keypoints = cv2.drawKeypoints(gray, keypoints, np.array([]), (0, 0, 255),  cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)color_img = cv2.cvtColor(im_with_keypoints, cv2.COLOR_BGR2RGB)# plt.imshow(color_img,interpolation='bicubic')# fname = "key points"# titlestr = '%s found %d keypoints' % (fname, len(keypoints))# plt.title(titlestr)# fig.canvas.set_window_title(titlestr)# plt.show()cv2.imshow('findCorners', color_img)cv2.waitKey()def main(img, fig):params = cv2.SimpleBlobDetector_Params()# Filter by Area.params.filterByArea = Trueparams.minArea = 10e1params.maxArea = 10e3params.minDistBetweenBlobs = 25# params.filterByColor = Trueparams.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.01gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# Detect blobs.# cv2.imshow('findCorners', img)# cv2.waitKey(1)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)if keypoints is not None:# print(len(keypoints))# opencvim_with_keypoints = cv2.drawKeypoints(gray, keypoints, np.array([]), (255, 0, 0), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)# plt# im_with_keypoints = cv2.drawKeypoints(gray, keypoints, np.array([]), (0, 0, 255),  cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)color_img = cv2.cvtColor(im_with_keypoints, cv2.COLOR_BGR2RGB)# # plt# fname = "key points"# titlestr = '%s found %d keypoints' % (fname, len(keypoints))# fig.canvas.set_window_title(titlestr)# plt.title(titlestr)# # plt.show()# plt.imshow(color_img)# plt.pause(0.1)# fig.clf()# opencvif len(keypoints) > 200:cv2.putText(color_img, ("circles num = % d" % len(keypoints)), (50, 50),cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)else:cv2.putText(color_img, ("Notice: % s" % "Change Position"), (50, 50),cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)cv2.imshow('findCorners', color_img)cv2.waitKey(1)if __name__ == "__main__":# 图片测试# # img = cv2.imread("circles/circels.jpg",1)img = cv2.imread("circles/Snap_001.jpg",1)mainFigure(img)# # # 打开相机# capture = cv2.VideoCapture(0)# print("hello world")## fig = plt.figure()# # plt.ion()## if capture is None:#     print("Fail to open camera")# else:#     while (True):#         # 获取一帧#         ret, frame = capture.read()##         if frame is None:#             print("Fail to grab")#             continue#         else:#             # 将这帧转换为灰度图#             # gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#             main(frame, fig)#         # cv2.imshow('frame', frame)#         key = cv2.waitKey(1)#         if key == ord('q'):#             break

python opencv 打开相机检测圆点相关推荐

  1. python opencv打开摄像头,截图保存

    python opencv打开摄像头,截图保存,学习结果如下: 使用python打开摄像头 import cv2 cap = cv2.VideoCapture(0) #设置摄像头 0是默认的摄像头 如 ...

  2. OpenCV打开相机,调整窗口大小位置

    OpenCV打开相机,调整窗口大小位置 import cv2cap = cv2.VideoCapture(0) cv2.namedWindow('test_cam',cv2.WINDOW_NORMAL ...

  3. 基于Python+OpenCV车道线检测(直道和弯道)

    基于Python+OpenCV车道线检测(直道和弯道) 基于Python+OpenCV车道线检测(直道和弯道)

  4. python+opencv车道线检测(简易实现)

    python+opencv车道线检测(简易实现) 技术栈:python+opencv 实现思路: canny边缘检测获取图中的边缘信息: 霍夫变换寻找图中直线: 绘制梯形感兴趣区域获得车前范围: 得到 ...

  5. python+opencv打开大华摄像机视频

    学习笔记 python+opencv打开大华摄像机视频 python+opencv打开大华摄像机视频 import cv2 # 大华摄像机的视频采集语句,subtype=1,辅码流.0,主码流. ca ...

  6. opencv打开相机实时采集与处理

    下面是opencv官方文档中的一个例子, 演示了如何打开相机,获取图片,对图片进行处理 main函数也不需要输入参数,配置好环境直接就可以运行 把处理函数进行修改,就可以实现不同的功能 /* Open ...

  7. python opencv打开摄像头

    opencv打开摄像头 import cv2 cap = cv2.VideoCapture(0) while True:ret, frame = cap.read()frame = cv2.flip( ...

  8. python+opencv打开摄像头、拍摄指定次数的照片_python+openCV调用摄像头拍摄和处理图片的实现...

    在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...

  9. python opencv车道线检测

    python3 opencv车道线检测 简介 特征提取 车道检测 鸟瞰图 找到车道起点 滑动窗口向上扫描 多项式拟合 鸟瞰图还原到原图 评估 总结 参考 简介 记录一下车道检测的过程.本文使用传统方法 ...

  10. 使用opencv打开相机——python

    import cv2 as cvdef video_demo():# 0是代表摄像头编号,只有一个的话默认为0capture = cv.VideoCapture(0)while (True):# 调用 ...

最新文章

  1. 【kindeditor】KindEditor获取多个textarea文本框的值并判断非空
  2. 程序员笔试面试后上机_2021年国考笔试成绩查询后,面试准备阶段需要做好四方面...
  3. Ubuntu上安装nginx步骤及问题记录
  4. 转: 网卡名字eth0,eth1的修改方法
  5. 实现MVC模式的Web应用程序
  6. python中列表生成式strip_列表生成式|让你的代码简洁又美观
  7. uefi和legacy的区别
  8. 了解活动目录操作主机角色及GUI命令行查看方法
  9. HTTP、HTTPS、SSL总结
  10. 美摄智能生产平台,轻松搞定视频制作——对话美摄科技研发总监黄裔
  11. jquery datepicker 点击日期控件不会自动更新input的值
  12. C# LINQ学习笔记四:LINQ to OBJECT之操作文件目录
  13. format python value error_格式化计算变量时出现“ValueError:无效的格式说明符”
  14. M1芯片Macbook最简单从11.3降级到11.2.3教程
  15. gradle 不支持多级子模块_Apache NetBeans 11.0 正式发布 支持Java 12
  16. Lstm(循环神经网络)
  17. 记录-vant-DatetimePicker时间选择器,时间选择滚动区域消失。[class*=van-hairline]
  18. com.Android.pngn.tlq,Android学习笔记(八)——四种基本布局
  19. 对五层网络协议体系结构的理解
  20. linux绘制进程树,Linux基础命令---显示树形进程pstree

热门文章

  1. oracle日期按时间点过滤,Oracle数据库日期过滤方法性能比较
  2. matlab filter函数_简单使用matlab滤波器
  3. .java和.class的区别_Java中class与Class有什么区别
  4. centos下mysql执行命令_CentOS下mysql数据库常用命令总结
  5. java 表格升序排列_用JS实现表格的排序
  6. 异步更新php数据库,ajax异步刷新实现更新数据库_jquery
  7. 第二章计算机组成原理例题,计算机组成原理习题第二章运算方法和运算器
  8. OMG: daily scrum nine
  9. Asp.net Mvc+MongoDB+Autofac等打造轻量级blog系统(二)
  10. js数据结构hashMap -----hashMap