【发布时间】:2021-10-08 11:44:02
【问题描述】:
我有一个使用 cv2 库的 python 程序,它选择一个随机的美国州,从文件夹中提取该州的图像并显示它。它工作正常,所以我保存了它,突然间,它没有显示图像,而是显示一个空白的灰色方块并崩溃。为什么会这样,我该如何解决?下面是示例图像: sample image second sample image 这是代码:
import cv2
import random
import time
#makes a list of the states
def states():
states = ['alabama','alaska','arizona','arkansas','california',
'colorado','connecticut','deleware','florida','georgia','hawaii',
'idaho','illinois','indiana','iowa','kansas','kentucky','louisiana',
'maine','maryland','massachussets','michigan','minnesota',
'mississipi','missouri','montana','nebraska','nevada',
'new_hampshire','new_jersey','new_mexico','new_york',
'north_carolina','north_dakota','ohio','oklahoma','oregon',
'pennsylvania','rhode_island','south_carolina','south_dakota',
'tennessee','texas','utah','vermont','virginia','washington',
'west_virginia','wisconsin','wyoming']
while True:
#choose a random state from the states list
state = random.choice(states)
#take a picture from the states folder, and display it
img = cv2.imread('picture_files/states/' + state + '.png')
cv2.imshow('guess the state!', img)
#checks if you typed the right state,
#and gives an appropriate response
guess = input("guess the state! (type stop to stop!)\n")
if guess.lower() == state:
print("Correct!")
time.sleep(2)
print("Lets do it again!")
elif guess.lower() == "stop":
break
else:
print("Nope! It was " + state + ". Keep trying!")
time.sleep(2)
if __name__ == '__main__':
states()
【问题讨论】:
-
我不明白你提到的“崩溃”。它没有响应吗?还是只是无限循环?
-
Rizquuula,当我运行程序时它显示正方形,我的光标显示加载符号,然后它说“python没有响应”,控制台显示“程序退出,代码:-805306369”
-
以下链接可能对您有所帮助stackoverflow.com/questions/22274789/…
-
尝试在您的
cv2.imshow()下方添加cv2.waitKey(0)。它会显示您的图像,但会再次开始not responding。如果您需要同时运行这两个进程,请使用线程。 realpython.com/intro-to-python-threading