Python 斑点检测

本文介绍了一个使用Python和OpenCV进行实时视频Blob检测的程序。该程序通过调整阈值和过滤参数来检测视频流中的Blob,并将检测到的Blob以红色圆圈的形式绘制出来,展示了Blob检测在实时视频应用中的实现。
该文章已生成可运行项目,
#!/usr/bin/python
 
# Standard imports
import cv2
import numpy as np;
 
# Read image
#im = cv2.imread("blob.jpg", cv2.IMREAD_GRAYSCALE)
cap=cv2.VideoCapture(0)
params = cv2.SimpleBlobDetector_Params()
 
# Change thresholds
params.minThreshold = 10
params.maxThreshold = 200
 
 
# Filter by Area.
params.filterByArea = True
params.minArea = 1200
 
# Filter by Circularity
params.filterByCircularity = True
params.minCircularity = 0.1
 
# Filter by Convexity
params.filterByConvexity = True
params.minConvexity = 0.87
    
# Filter by Inertia
params.filterByInertia = True
params.minInertiaRatio = 0.01
while True :
    sucess,img=cap.read()
    #im=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    im= cv2.convertScaleAbs(img) 
    # Setup SimpleBlobDetector parameters.

     
    # Create a detector with the parameters
    ver = (cv2.__version__).split('.')
    if int(ver[0]) < 3 :
    	detector = cv2.SimpleBlobDetector(params)
    else : 
    	detector = cv2.SimpleBlobDetector_create(params)
     
     
    # Detect blobs.
    keypoints = detector.detect(im)
     
    # Draw detected blobs as red circles.
    # cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS ensures
    # the size of the circle corresponds to the size of blob
     
    im_with_keypoints = cv2.drawKeypoints(im, keypoints, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
    text="blobs:%d"%(len(keypoints))
    ret = cv2.putText(im_with_keypoints, text, (5, 50), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (100, 200, 200), 2)
 
    # Show blobs
    cv2.imshow("Keypoints", ret)
    cv2.waitKey(1)

 

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值