• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python和opencv构建运动检测器的实现

    照着一个示例跑,目标本是捕获进入摄像头的第一帧然后会一直追踪这一个物体,如果出现的话会框出来,但是不知道什么原因,第一个框出来之后移动到别的地方还是会框别的东西,然后摄像头打开几秒就自动停止了还报错


    import pandas
    
    firstframe = None
    status = [None,None]
    df = pandas.DataFrame(columns=["start","end"])
    cap = cv2.VideoCapture(1)
    while True:
      check,colorframe = cap.read()
      status = 0
      gray = cv2.cvtColor(colorframe,cv2.COLOR_BGR2GRAY)
      gray = cv2.GaussianBlur(gray,(21,21),0) #高斯模糊去除噪声
      if firstframe is None:
        firstframe = gray
        continue #捕获第一个灰度帧 得到第一帧后不进行后续处理
      delta_frame = cv2.absdiff(firstframe,gray)
      # ,我们需要找出第一帧和当前帧之间的区别。因此,我们使用absdiff函数并将得到的结果称为delta帧。对于我们的用例来说,仅仅找到一个差异是不够的,所以我们需要定义一个像素阈值,它可以被视为真实的对象。我们可以选择30像素作为标准阈值,并将标准阈值的颜色定义为白色(颜色代码:255). 二元阈值函数THRESH_BINARY返回一个元组值,其中只有第二项([0]是第一项,[1]是第二项)包含生成的阈值帧。二元阈值函数用于处理含有2个离散值的非连续函数:如0或1。如果摄影机前面没有对象,我们将当前帧的状态视为0;如果摄影机前面存在对象,则将当前帧的状态视为1。 
    
      thresh_frame = cv2.threshold(delta_frame,30,255,cv2.THRESH_BINARY)[1]
      thresh_frame = cv2.dilate(thresh_frame,None,iterations=3)
      # 在膨胀函数Dilate中,我们可以通过设置迭代次数来设置平滑度。迭代次数越多,平滑度越高,处理时间也就越长。因此,建议保持标准化设置为3。膨胀函数中的“None”参数表示我们的应用中不需要元素结构。 
    
    #声明元组的语法 (cnts,_)
      (cnts,_) = cv2.findContours(thresh_frame.copy(),cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
      for contours in cnts :
        if cv2.contourArea(contours)  10000:
          continue
        if cv2.contourArea(contours)  20000:
         status = 1
         (x,y,w,h) = cv2.boundingRect(contours)
         cv2.rectangle(colorframe,(x,y),(x+w,y+h),(0,0,255),3)
         cv2.imshow("cc",colorframe)
      key = cv2.waitKey(1)
      if key == ord('q'):
        break
    

    显然这里有什么问题。
    留待解决:高斯平滑参数的获取

    到此这篇关于python和opencv构建运动检测器的实现的文章就介绍到这了,更多相关python opencv构建运动检测器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Opencv二帧差法检测运动目标与提取轮廓
    • OpenCV实现帧差法检测运动目标
    • Opencv+Python实现图像运动模糊和高斯模糊的示例
    • Python+OpenCV目标跟踪实现基本的运动检测
    • python opencv实现运动检测
    • 基于OpenCv的运动物体检测算法
    • Opencv光流运动物体追踪详解
    • OpenCV利用背景建模检测运动物体
    上一篇:Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
    下一篇:Python解析m3u8拼接下载mp4视频文件的示例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python和opencv构建运动检测器的实现 python,和,opencv,构建,运动,