zoukankan      html  css  js  c++  java
  • 光流法 例子2

    #coding = utf-8
    import cv2
    import numpy as np
    from pylab import *
    import matplotlib.pyplot as plt
    import pdb
    frame1 =cv2.imread(r"sevp_aoc_rdcp_sldas_ebref_achn_l88_pi_20161221094800001.png")
    # cap = cv2.VideoCapture('GOPR1745.avi')
    # ret, frame1 = cap.read()
    prvs = cv2.cvtColor(frame1,cv2.COLOR_BGR2GRAY)



    # ret, frame2 = cap.read()
    frame2 =cv2.imread(r"sevp_aoc_rdcp_sldas_ebref_achn_l88_pi_20161221110000001.png")
    next = cv2.cvtColor(frame2,cv2.COLOR_BGR2GRAY)
    flow = cv2.calcOpticalFlowFarneback(prvs,next, 0.5, 3, 15, 3, 10, 1.2, 0)

    size = flow.shape
    print size
    delta_x = flow[:,:,0]
    delta_y = flow[:,:,1]
    u = delta_x
    v = delta_y

    xx = np.arange(size[1])
    yy = np.arange(size[0])
    g_xx,g_yy = np.meshgrid(xx,yy)
    print 'xx.shape',xx.shape,'yy.shape',yy.shape
    print 'g_xx.shape',g_xx.shape,'g_yy.shape',g_yy.shape
    new_image = frame1.copy()
    for i in range(size[0]):
        for j in range(size[1]):
            try:
                new_image[i,j,:]=frame1[i+int(1*1.667*int(round(delta_x[i,j]))),j+int(1*1.667*int(round(delta_y[i,j]))),:]
            except:
                new_image[i,j,:] = [0,0,0]

    # # pdb.set_trace()
    # ng_xx = g_xx + delta_x
    # ng_yy = g_yy + delta_y

    # ng_xx[ng_xx <0] = 0
    # ng_xx[ng_xx>size[0]-1]=size[0]-1
    # ng_yy[ng_yy <0] = 0
    # ng_yy[ng_yy>size[1]-1]=size[1]-1

    # ng_xx = np.asarray(ng_xx,dtype="int64")
    # ng_yy = np.asarray(ng_yy,dtype="int64")
    # new_image = frame1.copy()

    # new_image[g_yy,g_xx,:] = frame1[ng_yy,ng_xx,:]

    fig, axes = plt.subplots(nrows=2, ncols=2)
    ax0, ax1, ax2, ax3 = axes.flat

    ax0.imshow(frame1)

    ax1.imshow(frame2)

    ax2.imshow(new_image)

    ax3.imshow(new_image-frame1)
    show()



    # plt.figure()
    # Q = plt.quiver(u[::20,::20],v[::-20,::-20])
    # qk = plt.quiverkey(Q, 0.5, 0.92, 2, r'$2 frac{m}{s}$', labelpos='W',
    #                    fontproperties={'weight': 'bold'})
    # imshow(v)
    # colorbar()    


    #    

  • 相关阅读:
    VIJOS1476 旅行规划(树形Dp + DFS暴力乱搞)
    神奇的图片
    How to locate elements/ Object locators for Android devices
    ZT: How to install appium with node.js
    How to get the appPackage and appActivity
    How to enable auto-complete for python in powershell
    Node.js
    Steps to develop an iterative algorithm
    Iterative Algorithm
    FSM
  • 原文地址:https://www.cnblogs.com/xiaoxiaoshuaishuai0219/p/6475518.html
Copyright © 2011-2022 走看看