Код не может завершить цикл, используя cv2.imwrite () в OpenCV - PullRequest
0 голосов
/ 31 января 2020

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

Так что до cv2.waitKey (0) код работает и я могу сохранить первое изображение, после того, как cv2.waitKey (0) ничего не читает, потому что, я думаю, он продолжает цикл.

это самый базовый c код:

dir_path = os.path.dirname(os.path.realpath(__file__))
print(dir_path)

cwd = os.getcwd()
print(cwd)

img = cv2.imread("C:/Users/carlo/PycharmProjects/OpenCV_AnaConda/opencv/samples/data/lena.jpg",0)      

print(img)

cv2.imwrite('C:/Users/carlo/PycharmProjects/OpenCV_lavendetta/lena_1.jpg', img)
print("it runs the code until here")

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.imwrite('C:/Users/carlo/PycharmProjects/OpenCV_lavendetta/lena_2.jpg', img)
print("the code ends")

Как я могу решить это? Спасибо

1 Ответ

0 голосов
/ 31 января 2020

Вы упоминаете циклы, но в вашем коде нет циклов. cv2.waitKey(0) будет бесконечно ждать ввода пользователя. Из документов:

Функция waitKey ждет события клавиши бесконечно (при задержке <= 0) или миллисекунд задержки, когда она положительна. </p>

waitKey(0) ожидает нажатия клавиши, поэтому вы нажимаете клавишу, и программа должна продолжаться. Если вы хотите, чтобы он ожидал только ограниченное время, введите количество миллисекунд, в течение которых вы хотите, чтобы оно отображалось.

Например: чтобы он появился только в течение 3 секунд, а затем продолжил выполнение программы, выполните cv2.waitkey(3000).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...