SerendipityMIT 2022-09-13 14:18 采纳率: 54.5%
浏览 31
已结题

如何在调用的摄像头捕捉到的画面中添加倒计时

问题遇到的现象和发生背景

各位,我遇到一个日思夜想不知道如何解决的问题,就是“如何在调用的摄像头捕捉到的画面中添加倒计时”,具体代码如下:

问题相关代码,请勿粘贴截图

这是python调用摄像头的代码:

cap = cv2.VideoCapture(0)
        while True:
            ret, frame = cap.read()  # 摄像头读取,ret为是否成功打开摄像头,true,false。 frame为视频的每一帧图像
            frame = cv2.flip(frame, 1)  # 摄像头是和人对立的,将图像左右调换回来正常显示。
            cv2.imshow("video", frame)
            if cv2.waitKey(1) == ord('q'):
                break
        cap.DestoryAllWindow()
        cap.release()
运行结果及报错内容

这是运行结果:

img

可以成功运行,但是我在想如何在让任看到自己脸的同时,还可以在影像的上方出现一个数字倒计时,就像从5到1这样的很明显的数子倒计时,倒计时结束后自动拍照(如何拍照我是明白的,但是如何在影像上显示数字倒计时而不影响人的观看感一直想不明白,希望各位可以帮帮我)

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-09-13 16:38
    关注
    
    from PIL import Image, ImageFont, ImageDraw
    #……
            cap = cv2.VideoCapture(0)
            cnt=5
            fcnt=0
            while True:
                ret, frame = cap.read()  # 摄像头读取,ret为是否成功打开摄像头,true,false。 frame为视频的每一帧图像
                frame = cv2.flip(frame, 1)  # 摄像头是和人对立的,将图像左右调换回来正常显示。
                fcnt+=1
                if fcnt>=25: #假定视频每秒25帧,则此处过了1秒钟
                    fcnt=0
                    cnt-=1
                    if cnt>0:
                        img=Image.fromarray(cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)) #获取frame对应的img
                        draw=ImageDraw.Draw(img) #获取img的draw对象
                        draw.text((20,10), "%d" %cnt, font=ImageFont.truetype('simhei.ttf', 16),fill=(255,255,255,255)) #使用draw对象的text方法在(10,20)处使用黑体,字体大小16,白色,显示cnt对应数字
                        frame=cv2.cvtColor(np.asarray(img),cv2.COLOR_RGB2BGR) #获取img对应的frame
                    if cnt==0:
                        frame.imwrite('snap.jpg',frame)
                        break
                cv2.imshow("video", frame)
                if cv2.waitKey(1) == ord('q'):
                    break
            cap.DestoryAllWindow()
            cap.release()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 9月13日

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码