OpenCV实现调用手机摄像头实时预测

在AidLux上使用OpenCV实现调用手机摄像头实时预测,并通过launch-build成功创建到桌面,在桌上点击运行。
本次使用的是Candy边缘检测。(candy_webcam.py)
代码如下

# 调用手机摄像头,逐帧实时拍摄+OpenCV图像处理
# 同济子豪兄 2023-7-30

# 导入工具包
import time
import cv2
from cvs import *

# 初始化摄像头
# 摄像头ID 0-后置 1-前置
Camera_ID = 0
cap = cvs.VideoCapture(Camera_ID)

# Canny 边缘检测 - 写 FPS 数值
def process_frame(img_bgr):
    '''输入BGR格式的 numpy array,输出BGR格式的 numpy array'''
    
    # 记录该帧开始处理的时间
    start_time = time.time()
    
    # 逐帧处理操作
    img_bgr = cv2.Canny(img_bgr, 100, 200)
    img_bgr = np.dstack((img_bgr, img_bgr, img_bgr))
    
    # 记录该帧处理完毕的时间
    end_time = time.time()
    # 计算每秒处理图像帧数FPS
    FPS = 1/(end_time - start_time)

    # 在画面上写 FPS 数值
    end_time = time.time()
    FPS = 1/(end_time - start_time) # 计算每秒处理图像帧数FPS
    FPS_string = 'FPS {:.2f}'.format(FPS) # 写在画面上的字符串
    img_bgr = cv2.putText(img_bgr, FPS_string, (25, 100), cv2.FONT_HERSHEY_SIMPLEX, 1.25, (255, 0, 255), 2) # 在画面上写字:图片,字符串,左上角坐标,字体,字体大小,颜色,字体粗细

    return img_bgr

# 逐帧实时处理手机摄像头拍摄的画面-代码模板
while True:
    img_bgr = cap.read()
    
    if img_bgr is None:
        continue
        
    img_bgr = process_frame(img_bgr)
    
    cvs.imshow(img_bgr)

具体实现过程参考以下视频。
视频

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值