Pycharm不会使用OpenCV和Python3.9在macOS“Big Sur”上显示图像预览

2024-09-24 00:36:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在macOS‘Big Sur’和Pycharm上使用OpenCV和python编写人脸识别应用程序,但不幸的是,它没有显示图像窗口/预览,并且在控制台中也没有显示任何错误,下面您可以检查代码:

import cv2

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

img = cv2.imread('news.jpg')

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

face = face_cascade.detectMultiScale(gray_img,
                                     scaleFactor=1.05, minNeighbors=5)

for x, y, w, h in face:
    img = cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 3)

resized = cv2.resize(img, (int(img.shape[1]/3), int(img.shape[0]/3)))

# cv2.startWindowThread()
# cv2.namedWindow("preview")
cv2.imshow('preview', img)
cv2.waitKey(0)
cv2.destroyWindow('preview')

我尝试过添加cv2.startWindowThread()、cv2.namedWindow(“预览”),甚至通过“pip3安装opencv python headless”安装headless,但它不起作用


Tags: imgmacospreviewcv2pycharmcascadeintface
2条回答

替换行face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascade + 'haarcascade_frontalface_default.xml')

然后它就可以正常工作了

以下是最终代码:

import cv2

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascade + 'haarcascade_frontalface_default.xml')

img = cv2.imread('news.jpg')

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

face = face_cascade.detectMultiScale(gray_img,
                                     scaleFactor=1.05, minNeighbors=5)

for x, y, w, h in face:
    img = cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 3)

resized = cv2.resize(img, (int(img.shape[1]/3), int(img.shape[0]/3)))

# cv2.startWindowThread()
# cv2.namedWindow("preview")
cv2.imshow('preview', img)
cv2.waitKey(0)
cv2.destroyWindow('preview')

问题似乎与macOS的“大苏尔”框架系统有关

该问题可通过以下方式解决: 1-删除我为这个特定项目创建的python环境 2-完全删除“自制啤酒” 3-使用python-3.9、OpenCV和“pip3安装OpenCV python headless”创建了一个新的python3环境,它成功了

相关问题 更多 >