簡體   English   中英

我需要一些幫助來解決我的 opencv 程序的這個問題嗎?

[英]I need some help to solve this problem with my opencv program please?

我正在將 opencv 用於顯示圖像的項目,在關閉顯示的圖像后,將打開相同的圖像以及新的附加圖像。 代碼如下,但它只顯示一個圖像而不是 2 個。

import cv2
import time
import random
import os

k = 0
rep = 0
window_name = "Monkey Virus"
files = os.listdir("Z:\Y10 Python\images wow\img")
delay = random.randint(0,10)
monkeyChoice = random.randint(1,len(files))
image = "Z:\\Y10 Python\\images wow\\img\\" + str(monkeyChoice) + ".jpg"
monkeyHist = 1

def draw_img():
    global monkeyHist
    if rep == 0:
        time.sleep(delay)
    monkeyHist += 1
    img = cv2.imread(image, cv2.COLOR_BGR2RGB)
    cv2.imshow(window_name, img)
    cv2.setWindowProperty(window_name, cv2.WND_PROP_TOPMOST, 1)
    cv2.waitKey(0)

draw_img()
rep = rep + 1

if cv2.getWindowProperty('Monkey Virus', cv2.WND_PROP_VISIBLE) < 1:
    while k < monkeyHist:
        draw_img()

您在主線程上調用cv2.imshow(...)后跟cv2.waitKey(0) 因此,在第一次調用之后,線程將被阻塞,並且在用戶按鍵之前不會執行進一步的代碼。 如果要顯示第二張圖像,則需要在調用cv2.imshow() cv2.waitKey(0)

(還

while k < monkeyHist:
    draw_img()

可能是一個無限循環,因為您的draw_img()函數只會增加monkeyHist,但永遠不會增加k; 因此,k 永遠小於 monkeyHist。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM