Ddddd4431 2023-01-01 21:54 采纳率: 90%
浏览 24
已结题

HOF光流直方图程序简化


 flow = cv2.calcOpticalFlowFarneback(prvs,next, None, 0.5, 5, 15, 5, 5, 1.1, 0)    # 输出是x,y方向的矢量
    # a=print('a',flow[:,:,0])
    # b=print('b',flow[:,:,1])
    c=[]
    def hoof(flow):  # flow.shape=[720.1280.2]
        l = np.zeros(6)
        for idx in flow:
            for j in idx:
                jz=np.sqrt((j[0])**2 + j[1]**2)    # 幅值
                jq=np.arctan(j[1]/j[0])            # 角度
                if jq >= -180 and jq < -150:
                    l[5] += 1
                elif jq >= -150 and jq < -120:
                    l[4] += 1
                elif jq >= -120 and jq < -90:
                    l[3] += 1
                elif jq >= -90 and jq < -60:
                    l[2] += 1
                elif jq >= -60 and jq < -30:
                    l[1] += 1
                elif jq >= -30 and jq < 0:
                    l[0] += 1
                elif jq >= 0 and jq < 30:
                    l[0] += 1
                elif jq >= 30 and jq < 60:
                    l[1] += 1
                elif jq >= 60 and jq < 90:
                    l[2] += 1
                elif jq >= 90 and jq < 120:
                    l[3] += 1
                elif jq >= 120 and jq < 150:
                    l[4] += 1
                elif jq >= 150 and jq < 180:
                    l[5] += 1
        return l

对得到的稠密光流结果做一个直方图统计,x横轴按照每+-30度为一个区间,将360度化分为6个区间。y数轴为次数。
这里的问题是,使用简单的for循环和if语句来完成所有这些操作需要很长时间,想问问大家有没有 简化 或者 提速 的办法?

  • 写回答

2条回答 默认 最新

  • youcans_ 人工智能领域优质创作者 2023-01-02 11:43
    关注

    整个 if then 循环可以简化为:

    l[abs(jq//30] += 1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月10日
  • 已采纳回答 1月2日
  • 创建了问题 1月1日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测