какой из них лучше для подсчета fps? - PullRequest
0 голосов
/ 09 июня 2019

два вопроса:

первый вопрос:

это мой код, я использовал два способа подсчета fps, но мне нужно использовать лучший.

эта строка для первого пути: print 'frame_NO',frame_NO

эта строка для второго пути: print("[INFO] approx. FPS: {:.2f}".format(fps.fps()))

всегда изменяется второе число, не постоянное число, а первое - это постоянное число приблизительно

второй вопрос: как считать два кадра в секунду, начало: 1 и конец: 10000 или открыто ???

Я использовал эту строку: print 'counter', counter это правильно для подсчета кадров в секунду ??

import cv2
import numpy as np
from imutils.video import FPS
# capturing video through webcam
import time
cap = cv2.VideoCapture(0)
#video dimension in python-opencv
width = cap.get(3)  # float
height = cap.get(4) # float
print width,height
time.sleep(2.0)
fps = FPS().start()
start_time = time.time()
counter = 0
while(1):
    counter+=1
    a =(time.time() - start_time)
    frame_NO = counter / a
    print  'frame_NO',frame_NO
    print 'counter', counter
    _, img = cap.read()

    # converting frame(img == BGR) to HSV(hue-saturation-value)

    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

    # red color

    red_lower = np.array([136,87,111],np.uint8)
    red_upper = np.array([180,255,255],np.uint8)



    # all color together

    red = cv2.inRange(hsv, red_lower, red_upper)


    # Morphological Transform, Dilation

    kernal = np.ones((5, 5), "uint8")

    red = cv2.dilate(red, kernal)
    res_red = cv2.bitwise_and(img, img, mask = red)



    # Tracking red
    (_, contours, hierarchy)=cv2.findContours(red, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    for pic, contour in enumerate(contours):
        area = cv2.contourArea(contour)
        if(area > 300):
            x, y, w, h = cv2.boundingRect(contour)
            img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
            cv2.putText(img, "Red Colour", (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255))    



    cv2.imshow("Color Tracking", img)
    if cv2.waitKey(10) & 0xFF == ord('q'):
        cap.release()
        cv2.destroyAllWindows()
        break
    fps.update()


# stop the timer and display FPS information
    fps.stop()
#    print("[INFO] elapsed time: {:.2f}".format(fps.elapsed()))
    print("[INFO] approx. FPS: {:.2f}".format(fps.fps()))

пожалуйста, помогите мне

заранее спасибо

...