2016-01-14 4 views
-1

Я создал матрицу изображений белого цвета, используя numpy, и теперь я хочу, чтобы мигать любой цвет над правой половиной матрицы изображения, которую я создал, я использую следующий код, но это не работает, как ожидалосьЯ хочу, чтобы моргнуть изображение с помощью кода на Python

import numpy as np 
import cv2 
import time 

i=0 
img=np.zeros((400,800,3),np.uint8) 
img.fill(255) 
while(i<=1): 
    img[0:400,400:800]=(153,0,255) 
    cv2.imshow('package',img) 
    time.sleep(5) 
    img[0:400,400:800]=(255,255,255) 
    cv2.imshow('package',img) 
    time.sleep(5) 
    img[0:400,400:800]=(153,0,255) 
    cv2.imshow('package',img) 
    i=i+1 

cv2.waitKey(0) 
cv2.destroyAllWindows() 

`

+0

Что происходит, когда вы используете текущий код? Что-то более конкретное, чем «нет, как ожидалось». – mech

+0

, когда я запускаю текущую программу, он ждет пять секунд (отображает серое окно), и через пять секунд он показывает изображение, которое я ему инструктировал, в конце концов, в этом случае изображение с левой половиной белого и правого половины розового в цвете. –

ответ

0

Вам нужно "WaitKey" только после того, как imshow, чтобы обеспечить изображение перерисовывается. waitkey (5000) означает 5 секунд ожидания. «time.sleep (5)» здесь не требуется:

import numpy as np 
    import cv2 
    import time 

    i=0 
    img=np.zeros((400,800,3),np.uint8) 
    img.fill(255) 
    while(i<=1): 
     img[0:400,400:800]=(153,0,255) 
     cv2.imshow('package',img) 
     cv2.waitKey(5000)   
     img[0:400,400:800]=(255,255,255) 
     cv2.imshow('package',img) 
     cv2.waitKey(5000) 
     img[0:400,400:800]=(153,0,255) 
     cv2.imshow('package',img) 
     cv2.waitKey(5000) 
     i=i+1 

    cv2.destroyAllWindows() 
+1

Спасибо, что ответили, он отлично работал –

Смежные вопросы