在cv2.imshow()下打印一段时间

时间:2018-03-23 05:49:43

标签: python opencv imshow cv2 imread

我一直在尝试做一个简单的任务,但不幸的是我无法让它发挥作用,我开始认为这不可能做到,但是因为它已经做到了#39太简单了我可能是最愚蠢的人:

我想要做的是在显示图像时在一段时间内打印一些值,所以如果我增加一段时间,我会得到更多的值。

我已尝试使用while循环,如果条件和定义。

这是一个例子:

    cpt = 0
    IAPS_img = "./IAPS_Images/"

    image = cv2.imread(IAPS_img + "cat.jpg")
    while(True):            
        cv2.imshow('image',image) 
        cpt += 1
        print(cpt)  
        while(True):
            k = cv2.waitKey(3000)
            if k == 27:
   break
   cv2.destroyAllWindows() 

我可以使用以下命令在cmd中成功执行:

    cd... python script1.py &
    cd... python script2.py &

但是不能在单个脚本中执行此操作,因为我没有打印一些数字而是想拍摄一些照片,如果我完成了这些操作,我可以按照我想要的方式进行操作。

我愿意接受建议:

  

Pd积。我之所以这样做,是因为我无法在CMD中完成此操作>>>>>> "我没有打印一些数字,而是想在拍摄照片的同时拍摄一些照片。

谢谢,

2 个答案:

答案 0 :(得分:0)

您需要更改while循环,以便它只运行一段时间。你可以尝试这样的事情:

from datetime import datetime, timedelta
start = datetime.now()
cpt = 0
IAPS_img = "./IAPS_Images/"

image = cv2.imread(IAPS_img + "cat.jpg")
while datetime.now() - start < timedelta(seconds=5*60*60):        
    cv2.imshow('image',image) 
    cpt += 1
    print(cpt)  
    while(True):
        k = cv2.waitKey(3000)
        if k == 27:
break
cv2.destroyAllWindows() 

答案 1 :(得分:0)

Multiprocessing解决了我的问题。感谢mark!