piaoyiren 2023-09-02 14:41 采纳率: 58.8%
浏览 3

python 人脸识别

我在做人脸识别的程序中遇到这样的问题,如下:


    def openCamera(self):
        cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
        if cap.isOpened():
            engine = pyttsx3.init()
            engine.say('开始识别')
            engine.runAndWait()
            self.rightLabel.show()
            cont = 0
            while cap.isOpened():
                retval, frame = cap.read()
                if not retval:
                    print('can not read frame')
                    break
                self.blinked_detect.detect(frame, name='Null', operation=2)

                frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

                qimg = QImage(frame.data, frame.shape[1], frame.shape[0], QImage.Format_RGB888)
                #                 图片显示到label
                self.rightLabel.setPixmap(QPixmap.fromImage(qimg))
                key = cv2.waitKey(7)
                print(key,"---------------")
                if key == 27:
                    break
        else:

不知道如何用ey = cv2.waitKey(7)退出

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-02 16:07
    关注

    【以下回答由 GPT 生成】

    要使用 cv2.waitKey(7) 来退出程序,您可以在检测到按下 ESC 键时使用 break 语句来终止循环。以下是对您的代码进行修改的示例:

    def openCamera(self):
        cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
        if cap.isOpened():
            engine = pyttsx3.init()
            engine.say('开始识别')
            engine.runAndWait()
            self.rightLabel.show()
            cont = 0
            while cap.isOpened():
                retval, frame = cap.read()
                if not retval:
                    print('can not read frame')
                    break
                self.blink_detect.detect(frame, name='Null', operation=2)
    
                frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    
                qimg = QImage(frame.data, frame.shape[1], frame.shape[0], QImage.Format_RGB888)
                self.rightLabel.setPixmap(QPixmap.fromImage(qimg))
    
                key = cv2.waitKey(7)
                print(key, "---------------")
                if key == 27:  # 按下 ESC 键退出
                    break
        else:
            # Some code here
    

    在上面的代码中,当按下 ESC 键 (key == 27) 时,使用 break 语句来终止 while 循环,从而退出程序。

    请注意,cv2.waitKey() 的参数表示等待按键的时间(单位为毫秒)。您可以根据需要调整等待时间的值,以便更好地适应您的应用程序。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月2日

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法