zoukankan      html  css  js  c++  java
  • 2019年11月26日开发手记

    利用numpy的矩阵加法函数,成功实现矩阵行列相加,返回投影值,在效果相同的基础上把时间降到了30ms左右。
    接下来要将投影值进行聚类,从而达到检测多个运动目标的目的。
    def line_trans(img):
        l = Stack()
        h_1= Stack()
        l.isEmpty()
        h_1.isEmpty()
        #ret, thresh1 = cv2.threshold(img, 25, 255, cv2.THRESH_BINARY)  # 将图片进行二值化(130,255)之间的点均变为255(背景)
        (h, w) = img.shape  # 返回高和宽
        a = [0 for z in range(0, w)]
        # 记录每一列的波峰
        #print(img[74, 103])
        for j in range(0, w):  # 遍历一列
            a[j] = sum(img[:, j])
            if a[j]>0:
                l.push(j)
        for i in range(0, h):  # 遍历一列
            a[i] = sum(img[i, :])
            if a[i]>0:
                h_1.push(i)
        if len(h_1.stack) != 0 and len(l.stack) != 0:
            max_h=h_1.stack[len(h_1.stack)-1]
            min_h=h_1.stack[0]
            max_l=l.stack[len(l.stack)-1]
            min_l=l.stack[0]
            return min_h,min_l,max_h,max_l
        else:
            return 0,0,0,0
    接下来对已选定的点集进行聚类,对比一下mean shift与dbscan在处理相同数据集时的速度以及效果。
    ……
    TMD聚类算法,所有的聚类算法都是基于二维平面的,但我们的算法是利用投影法求得的点集,点集里都是横纵坐标,但这些横纵坐标都不是关联的,也就是说,点集不是二维而是一维的,从某种意义上来说这是一件好事,聚类算法的设计难度降低了——如果从头设计的话,但这对于一个只会造轮子的我来说,绝对不是个好消息。
    对于单个或少量运动物体而言,一维的聚类非常简单——只要把间隔足够远的横纵坐标区域当做运动投影即可,但一旦运动区域在横纵坐标重合,那么问题将变得非常麻烦——我们没有办法将重合的横纵点集分开——也不一定,关键在于投影值,重合区域的投影值肯定更大——至少大于两边,可以设计一个阈值,将大于阈值的部分作为重合点,以此为分界点分割目标——但这又受物体大小的影响,emmmm,先弄出来这个再说吧,其他的以后再说。
  • 相关阅读:
    Java基本元素
    wsgiref模块
    Web框架与HTTP协议
    pymysql 于pycharm中操作mysql
    mysql
    协程
    jQuery选择器
    网络编程→锁/队列/线程
    初识网络编程&并发编程
    navcat 如何将一个库的表抽到另一个库中
  • 原文地址:https://www.cnblogs.com/lvfengkun/p/11938375.html
Copyright © 2011-2022 走看看