OpenCV-python的imshow方法无法弹出窗口问题

问题

今天使用OpenCV的imshow方法预览摄像头捕捉的图像时,出现了显示窗口不弹出的问题,最后通过安装matplotlib库解决的。

使用的代码

import cv2
import os
# 调用笔记本内置摄像头,所以参数为0,如果有其他的摄像头可以调整参数为1,2
def facecollect():
    cap = cv2.VideoCapture(0)
    face_detector = cv2.CascadeClassifier('/home/lmx/anaconda3/envs/人脸识别实验/lib/python3.7/site-packages/cv2/data/haarcascade_frontalface_default.xml') #  分类器地址  
    while True:
        sucess, img = cap.read()
        faces = face_detector.detectMultiScale(img,scaleFactor=1.2,
                                            minNeighbors=5,minSize=(32, 32))
        for (x, y, w, h) in faces:
            cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
        cv2.imshow('image', img)
        # 保持画面的持续。

        k = cv2.waitKey(1)

        if k == 27:   # 通过esc键退出摄像
            break
    # 关闭摄像头
    cap.release()
    cv2.destroyAllWindows()


facecollect()

解决过程

一开始运行代码保持着循环但没有图像窗口,以为是我的Ubuntu系统的摄像头驱动问题。搞了一下,安装了一下cheese,测试一看摄像头没有问题可以用。这问题不就变成了摄像头可以用只是没有图像窗口,因此我就百度了一下,结果搜到的解答全是解决怎样保持窗口的(用cv2.waitKey(0)保持窗口不一闪而过)这可难搞喽,我这压根没窗口好吧!
最后我搜了一下OpenCV-python的依赖包 Numpy Matplotlib Cmake等等,当我看到Matplotlib库时我猜测可能就是它没装,因为我知道这个库是一个绘图的库可以产生GUI。我看了下自己的环境pip list 诶还真没有,最后装上这个库解决了这个问题。

效果

在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值