在這種情況下,由于回圈,“白色和黑色像素的數量:”被列印了數百萬次。但是,我希望它每五秒列印一次。
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
low_p = np.array([136, 57, 0])
high_p = np.array([255, 255, 255])
mask = cv2.inRange(hsv_frame, low_p, high_p)
p_mask= cv2.bitwise_and(frame, frame, mask=mask)
number_of_white_pix = np.sum(mask == 255)
number_of_black_pix = np.sum(mask == 0)
print('Number of white pixels:', number_of_white_pix)
print('Number of black pixels:', number_of_black_pix)
cv2.imshow("Frame", frame)
cv2.imshow("Pink mask", mask)
cv2.imshow("original mask", p_mask)
key = cv2.waitKey(1)
if key == 27:
break
uj5u.com熱心網友回復:
您應該能夠使用 time 模塊來做到這一點。您可以設定t1為開始時間和t2當前時間,每次回圈運行時更新。一次t1和t2相隔 5 秒,您可以列印資訊并將開始時間設定為t2。這是應該作業的代碼
import time
cap = cv2.VideoCapture(0)
t1 = time.time()
t2 = t1
while True:
_, frame = cap.read()
hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
low_p = np.array([136, 57, 0])
high_p = np.array([255, 255, 255])
mask = cv2.inRange(hsv_frame, low_p, high_p)
p_mask= cv2.bitwise_and(frame, frame, mask=mask)
number_of_white_pix = np.sum(mask == 255)
number_of_black_pix = np.sum(mask == 0)
if t2 - t1 >= 5:
print('Number of white pixels:', number_of_white_pix)
print('Number of black pixels:', number_of_black_pix)
t1 = t2
cv2.imshow("Frame", frame)
cv2.imshow("Pink mask", mask)
cv2.imshow("original mask", p_mask)
t2 = time.time()
key = cv2.waitKey(1)
if key == 27:
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/421921.html
標籤:
上一篇:BCC校驗計算工具,附原始碼
