Python 3.x 使用cv2.imshow时获取此黑色窗口而不是图片

Python 3.x 使用cv2.imshow时获取此黑色窗口而不是图片,python-3.x,opencv,ubuntu,face-recognition,Python 3.x,Opencv,Ubuntu,Face Recognition,我不知道我应该用什么术语来形容我得到的窗口,所以我附上了一个窗口的截图以供参考 我运行此代码的10次中有7次出现此窗口: import cv2 import numpy as np import face_recognition imgElon = face_recognition.load_image_file("BasicFaceRecImg/ElonMusk2.jpg") imgElon = cv2.cvtColor(imgElon, cv2.COLOR_BGR2

我不知道我应该用什么术语来形容我得到的窗口,所以我附上了一个窗口的截图以供参考

我运行此代码的10次中有7次出现此窗口:

import cv2
import numpy as np
import face_recognition


imgElon = face_recognition.load_image_file("BasicFaceRecImg/ElonMusk2.jpg")
imgElon = cv2.cvtColor(imgElon, cv2.COLOR_BGR2RGB)
imgElon_face_loc = face_recognition.face_locations(imgElon)[0]
print(imgElon_face_loc)

imgElon_encode = face_recognition.face_encodings(imgElon)[0]
cv2.rectangle(imgElon, (imgElon_face_loc[0], imgElon_face_loc[3]), (imgElon_face_loc[1], imgElon_face_loc[2]),(255, 0, 255), 2)
cv2.imshow('Elon Musk', imgElon)
cv2.waitKey(0)
image = cv2.imread("./faces/test.jpg", cv2.IMREAD_COLOR)

有趣的是,我并不是每次都遇到这个问题。它有时运行得很好。

我也遇到了同样的问题,并且能够使用以下代码解决它:

import cv2
import numpy as np
import face_recognition


imgElon = face_recognition.load_image_file("BasicFaceRecImg/ElonMusk2.jpg")
imgElon = cv2.cvtColor(imgElon, cv2.COLOR_BGR2RGB)
imgElon_face_loc = face_recognition.face_locations(imgElon)[0]
print(imgElon_face_loc)

imgElon_encode = face_recognition.face_encodings(imgElon)[0]
cv2.rectangle(imgElon, (imgElon_face_loc[0], imgElon_face_loc[3]), (imgElon_face_loc[1], imgElon_face_loc[2]),(255, 0, 255), 2)
cv2.imshow('Elon Musk', imgElon)
cv2.waitKey(0)
image = cv2.imread("./faces/test.jpg", cv2.IMREAD_COLOR)

我安装了opencv-python-4.2.0.32,问题似乎已经解决了。出现问题时,我正在使用版本4.3.0.36。

这将有所帮助。你需要调整图像的大小,有时OpenCV会弄乱图像格式,这将适用于所有OpenCV版本,希望这能有所帮助

import cv2
import numpy as np
import face_recognition

# cv2.namedWindow('image', cv2.WINDOW_NORMAL)
imgElon = face_recognition.load_image_file("elon.jpg")
print(type(imgElon.shape))
a,b,c=imgElon.shape


imgElon = cv2.cvtColor(imgElon, cv2.COLOR_BGR2RGB)
imgElon_face_loc = face_recognition.face_locations(imgElon)[0]
print(imgElon_face_loc)

imgElon_encode = face_recognition.face_encodings(imgElon)[0]
cv2.rectangle(imgElon, (imgElon_face_loc[0], imgElon_face_loc[3]), (imgElon_face_loc[1], imgElon_face_loc[2]),(255, 0, 255), 2)


imgElon=cv2.resize(imgElon, (a, b))

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

你能解决这个问题吗?有完全相同的问题。恼人的是,它有时能用,有时不能用以前工作得很好的脚本。在我的例子中,就在前面,它显示了错误“加载模块失败”堪培拉gtk模块“”。我再次安装了这个模块。不知道这是否有任何联系。问题来自Qt,请参阅和。你可以自己建立一个库来避免这个问题。Sajjad Aemmi你应该把这个答案标记为解决方案,这样它可以使其他人受益,并将这个问题标记为已解决。