【OpenCV-PyQt5-PyGame-imutils】探索Python中的图像和视频捕获:性能分析与选择指南

这篇具有很好参考价值的文章主要介绍了【OpenCV-PyQt5-PyGame-imutils】探索Python中的图像和视频捕获:性能分析与选择指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

随着计算机视觉和多媒体应用的不断发展,图像和视频捕获变得越来越重要。在Python中,有多种库和工具可供选择,用于打开摄像头、捕获图像、以及处理视频流。本文旨在为读者提供对这些捕获方法的全面了解,并介绍如何计算平均帧率以评估性能。

环境配置

新的空白解释器环境创建

解释器环境创建方式基于
半自动化使用.bat手动打包迁移python项目

Windows

python -m venv venv
call venv\Scripts\activate.bat
python -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip setuptools

注:以下报错是由于你在powershell输入了以上命令,你需要切换成cmd,直接输入cmd即可

PS E:\PRODUCE\dli\recognition-dlib\RetinaFace-FaceNet> call
venv\Scripts\activate.bat call : 无法将“call”项识别为
cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1

  • call venv\Scripts\activate.bat
  •   + CategoryInfo          : ObjectNotFound: (call:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
    

Linux

python -m venv venv 
source venv/bin/activate
python -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip setuptools
  • 你也可以使用conda管理你的 Python 环境,但是我实际使用时的体验来看,以上方法当你的电脑已经安装了任意版本的python,打开cmd即可使用,且比conda安装新的包更快,速度与直接pip install在系统解释器中几乎一致
  • 若使用conda,你必须先下载conda,但是conda可以很好的处理各种包不匹配的问题,也可以下载到的很多pip找不到的特殊版本

以上两种方法就对应PyCharm中的这两种方法
【OpenCV-PyQt5-PyGame-imutils】探索Python中的图像和视频捕获:性能分析与选择指南,python,python,opencv,qt,pygame

相关库配置

1. OpenCV

pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python==4.5.3.56

2. Pygame

pip install -i https://mirrors.aliyun.com/pypi/simple/ Pygame

3. pyqt5

pip install -i https://mirrors.aliyun.com/pypi/simple/ pyqt5 pyqt5-sip pyqt5-tools

建议三个库相关库一起装不然可能会报错

This application failed to start because no Qt platform plugin could be
initialized.Reinstalling the application may fix this problem.

【OpenCV-PyQt5-PyGame-imutils】探索Python中的图像和视频捕获:性能分析与选择指南,python,python,opencv,qt,pygame

4. imutils

pip install -i https://mirrors.aliyun.com/pypi/simple/ imutils

5. pyautogui

pip install -i https://mirrors.aliyun.com/pypi/simple/ pyautogui

6. av

pip install -i https://mirrors.aliyun.com/pypi/simple/ av

7. SimpleCV
Python2库,python3已不支持

pip install -i https://mirrors.aliyun.com/pypi/simple/ SimpleCV

Python中的视频流处理:不同库和工具的使用

视频流处理在计算机视觉和多媒体应用中占据着重要地位。本文将介绍Python中的不同库和工具,用于摄像头捕捉、图像处理和视频流处理。我们将提供示例代码和描述,以帮助读者了解这些工具的使用方法。

1. OpenCV

OpenCV 是一个流行的计算机视觉库,可以用于摄像头捕捉和图像处理。以下是使用 OpenCV 打开摄像头并拍照的示例代码:

import cv2

# 初始化摄像头
cap = cv2.VideoCapture(0)

if not cap.isOpened():
    print("摄像头未找到或无法访问。")
else:
    while True:
        # 捕获一帧图像
        ret, frame = cap.read()

        cv2.imshow("Press Space to Capture", frame)

        key = cv2.waitKey(1)

        if key == 32:  # 按下空格键
            # 将图像保存为文件
            cv2.imwrite('captured_image.jpg', frame)
            print("拍照成功!图像已保存为captured_image.jpg")
            break

    # 释放摄像头
    cap.release()
    cv2.destroyAllWindows()


2. Pillow

Pillow 是一个强大的图像处理库,也可以用于摄像头捕捉。以下是使用 Pillow 打开摄像头并拍照的示例代码:

from PIL import Image
from io import BytesIO
import requests

# 初始化摄像头
with Image.open(requests.get('http://localhost:8080/picture/1/current/', stream=True).raw) as camera:
    # 拍照
    camera.save("pillow_capture.jpg")

3. Pygame

Pygame 是一个游戏开发库,也可以用于摄像头捕捉。以下是使用 Pygame 打开摄像头并拍照的示例代码:

import pygame
import pygame.camera
from pygame.locals import *

def main():
    pygame.init()
    pygame.camera.init()

    # 打开默认摄像头
    camera = pygame.camera.Camera(pygame.camera.list_cameras()[0])
    camera.start()

    # 设置窗口尺寸和标题
    screen = pygame.display.set_mode((640, 480))
    pygame.display.set_caption('Camera Feed')

    capturing = False

    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                camera.stop()
                pygame.quit()
                return
            elif event.type == KEYDOWN and event.key == K_c:
                # 按 'C' 键来拍照
                image = camera.get_image()
                pygame.image.save(image, 'captured_image.png')
                capturing = True

        if not capturing:
            # 从摄像头获取图像并显示
            image = camera.get_image()
            screen.blit(image, (0, 0))
            pygame.display.update()
        else:
            # 显示拍摄的照片
            captured_image = pygame.image.load('captured_image.png')
            screen.blit(captured_image, (0, 0))
            pygame.display.update()

if __name__ == "__main__":
    main()

4. PyQt

PyQt 是一个GUI库,它也提供了摄像头访问和图像捕捉功能。你可以使用 PyQt 的相机模块来实现这一功能。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton
from PyQt5.QtMultimedia import QCamera, QCameraInfo
from PyQt5.QtMultimediaWidgets import QCameraViewfinder
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QImage

class CameraApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('Camera App')
        self.setGeometry(100, 100, 640, 480)

        self.central_widget = QWidget(self)
        self.setCentralWidget(self.central_widget)
        self.layout = QVBoxLayout(self.central_widget)

        self.viewfinder = QCameraViewfinder(self)
        self.layout.addWidget(self.viewfinder)

        self.camera_info = QCameraInfo.defaultCamera()
        self.camera = QCamera(self.camera_info)
        self.camera.setViewfinder(self.viewfinder)
        self.camera.start()

        self.capture_button = QPushButton('拍照', self)
        self.layout.addWidget(self.capture_button)
        self.capture_button.clicked.connect(self.capture_image)

    def capture_image(self):
        image = self.viewfinder.grab()
        if not image.isNull():
            image.save('captured_image.png', 'PNG')

    def closeEvent(self, event):
        self.camera.stop()
        self.camera.unload()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = CameraApp()
    window.show()
    sys.exit(app.exec_())

5. imutils

imutils 是一个用于图像处理的工具集,它包括了一些用于打开摄像头并捕捉图像的函数。

from imutils.video import VideoStream
import cv2

def main():
    vs = VideoStream(src=0).start()  # 打开默认摄像头

    frame_count = 0

    while True:
        frame = vs.read()  # 读取一帧图像

        # 显示图像
        cv2.imshow('Camera', frame)

        key = cv2.waitKey(1)

        if key == 32:  # 如果按下空格键,拍照
            # 保存图像
            cv2.imwrite(f'photo_{frame_count}.jpg', frame)
            frame_count += 1

        if key == 27:  # 如果按下ESC键,退出循环
            break

    # 释放摄像头和销毁窗口
    vs.stop()
    cv2.destroyAllWindows()

if __name__ == "__main__":
    capture_frame_count = 0
    main()

6. av

av 是一个多媒体处理库,它支持音频和视频捕捉。虽然它主要用于音视频处理,但也可以用于摄像头捕捉。

import av
import numpy as np
from av.video import VideoFrame

# 打开摄像头
container = av.open("R.mp4")

# 获取视频流
stream = container.streams.video[0]

# 读取图像帧
for frame in container.decode(stream):
    img = frame.to_image()
    img.save("av_capture.jpg")
    break  # 捕捉一帧后退出

7. SimpleCV

python2方法,python3不可用
SimpleCV 是一个计算机视觉库,内置了摄像头捕捉和图像处理工具。

from SimpleCV import Camera

# 初始化摄像头
camera = Camera()

# 拍照
image = camera.getImage()
image.save("simplecv_capture.jpg")

测试函数,捕捉100帧并返回平均帧率

平均帧率(Average Frame Rate)的计算方法是将总共捕获的帧数除以经过的时间,以得到每秒的帧数(FPS)。以下是具体的计算步骤:

  1. 记录一个起始时间 start_time,通常使用毫秒为单位。你可以使用类似 QTime.currentTime() 的方法来获取当前时间。

  2. 在每一帧捕获之后,递增一个帧数计数器 frame_count,用于跟踪已捕获的帧数。

  3. 当达到指定的帧数(例如100帧)时,停止捕获过程。

  4. 记录一个结束时间 end_time,通常也以毫秒为单位。

  5. 计算经过的时间,即结束时间减去起始时间,以毫秒为单位。这可以使用下面的方法计算:elapsed_time = end_time - start_time

  6. 将经过的时间转换为秒,因为帧率通常以每秒的帧数(FPS)表示。这可以通过将elapsed_time除以1000来实现,得到经过的时间(秒)。

  7. 计算帧率 frame_rate,将已捕获的帧数 frame_count除以经过的时间(秒)。帧率的计算公式为:frame_rate = frame_count / elapsed_time

  8. 最后,你可以将 frame_rate 打印出来,以表示捕获的平均帧率。

这个帧率表示了程序在捕获和显示帧的过程中的性能。通常,帧率越高,程序运行得越流畅。这个值对于评估图像处理应用程序的性能非常重要。

python3

可处理摄像头或视频帧

1. OpenCV Frame Capture

OpenCV 是一个流行的计算机视觉库,可以用于摄像头捕捉和图像处理。这个程序测试使用 OpenCV 打开摄像头并返回平均帧率。

import cv2
import timeit


def capture_and_display_opencv():
    cap = cv2.VideoCapture(0)
    frame_count = 0
    start_time = timeit.default_timer()

    while frame_count < 100:
        ret, frame = cap.read()
        frame_count += 1

        # 显示捕获的帧
        cv2.imshow("Camera Feed", frame)

        if cv2.waitKey(1) & 0xFF == 27:  # 按下 ESC 键退出
            break

    cap.release()
    cv2.destroyAllWindows()

    end_time = timeit.default_timer()
    elapsed_time = end_time - start_time
    frame_rate = frame_count / elapsed_time
    return frame_rate


if __name__ == "__main__":
    frame_rate = capture_and_display_opencv()
    print("OpenCV Frame Rate:", frame_rate)


OpenCV Frame Rate: 23.629290831107372

此程序使用 OpenCV 打开摄像头,捕捉100帧并返回平均帧率。请将此代码保存为一个单独的Python文件并运行。

2. Pygame Frame Capture

Pygame 是一个游戏开发库,也可以用于摄像头捕捉。以下是测试使用 Pygame 打开摄像头并返回平均帧率的程序:

import pygame.camera
from pygame.locals import *
import timeit
import pygame

def capture_and_display_pygame():
    pygame.init()
    pygame.camera.init()
    camera = pygame.camera.Camera(pygame.camera.list_cameras()[0])
    camera.start()

    # 创建 Pygame 窗口用于显示摄像头画面
    screen = pygame.display.set_mode((640, 480))
    pygame.display.set_caption("Camera Feed")

    frame_count = 0
    start_time = timeit.default_timer()

    running = True
    while running:
        for event in pygame.event.get():
            if event.type == QUIT:
                running = False

        # 捕获摄像头画面
        image = camera.get_image()

        # 将捕获的画面显示在 Pygame 窗口上
        screen.blit(image, (0, 0))
        pygame.display.flip()

        frame_count += 1

        if frame_count >= 100:
            running = False

    end_time = timeit.default_timer()
    elapsed_time = end_time - start_time
    frame_rate = frame_count / elapsed_time

    # 关闭 Pygame 窗口
    pygame.quit()

    return frame_rate

if __name__ == "__main__":
    frame_rate = capture_and_display_pygame()
    print("Pygame Frame Rate:", frame_rate)

此程序使用 Pygame 打开摄像头,捕捉100帧并返回平均帧率。请将此代码保存为一个单独的Python文件并运行。
Pygame Frame Rate: 28.42875197551398

3. PyQt Frame Capture

PyQt 是一个强大的GUI库,它包括了对摄像头的访问功能。以下是测试使用 PyQt 打开摄像头并返回平均帧率的程序:

import sys
from PyQt5.QtCore import Qt, QTimer, QTime
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt5.QtMultimedia import QCamera, QCameraInfo
from PyQt5.QtMultimediaWidgets import QCameraViewfinder

class CameraApp(QMainWindow):
    def __init__(self, capture_frame_count):
        super().__init__()
        self.capture_frame_count = capture_frame_count
        self.initUI()

    def initUI(self):
        self.setWindowTitle('Camera Feed')
        self.setGeometry(100, 100, 640, 480)

        self.central_widget = QWidget(self)
        self.setCentralWidget(self.central_widget)
        self.layout = QVBoxLayout(self.central_widget)

        self.viewfinder = QCameraViewfinder(self)
        self.layout.addWidget(self.viewfinder)

        self.camera_info = QCameraInfo.defaultCamera()
        self.camera = QCamera(self.camera_info)
        self.camera.setViewfinder(self.viewfinder)
        self.camera.start()

        self.frame_count = 0
        self.start_time = QTime.currentTime()

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.capture_frame)
        self.timer.start(30)  # 30毫秒更新一次

    def capture_frame(self):
        if self.frame_count < self.capture_frame_count:
            self.frame_count += 1
            # 实时显示捕获的帧
            self.viewfinder.show()
        else:
            self.timer.stop()
            self.camera.stop()
            self.camera.unload()
            self.close()

    def closeEvent(self, event):
        elapsed_time = self.start_time.msecsTo(QTime.currentTime())
        frame_rate = self.frame_count / (elapsed_time / 1000)
        print("PyQt5 Frame Rate:", frame_rate)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    capture_frame_count = 100
    window = CameraApp(capture_frame_count)
    window.show()
    sys.exit(app.exec_())

PyQt5 Frame Rate: 26.32964718272775

此程序使用 PyQt 打开摄像头,捕捉100帧并返回平均帧率。请将此代码保存为一个单独的Python文件并运行。

接下来,我们将继续介绍使用 SimpleCV、imutils 和其他捕捉方法的程序。

4. imutils Frame Capture

使用 imutils 库可以方便地捕获视频帧,但要显示图像,您通常仍然需要使用 OpenCV 或其他类似的库。 imutils 用于帮助处理图像和视频帧的读取、处理和转换,但它本身不提供图像显示的功能。所以在捕获和实时显示视频帧时,通常需要结合使用 imutils 和 OpenCV。

import time
import timeit
import cv2
from imutils.video import VideoStream

def capture_imutils(capture_frame_count):
    vs = VideoStream(src=0).start()  # 打开默认摄像头
    time.sleep(2.0)  # 等待摄像头预热

    frame_count = 0
    start_time = timeit.default_timer()

    while frame_count < capture_frame_count:
        frame = vs.read()
        cv2.imshow("Frame", frame)

        if cv2.waitKey(1) & 0xFF == 27:  # 按下 ESC 键退出
            break

        frame_count += 1

    end_time = timeit.default_timer()
    vs.stop()
    cv2.destroyAllWindows()

    elapsed_time = end_time - start_time
    frame_rate = frame_count / elapsed_time
    return frame_rate

if __name__ == "__main__":
    capture_frame_count = 100  # 指定捕获帧数
    frame_rate = capture_imutils(capture_frame_count)
    print("imutils Frame Rate:", frame_rate)

imutils Frame Rate: 100.61413256692732

此程序使用 imutils 打开摄像头,捕捉100帧并返回平均帧率。请将此代码保存为一个单独的Python文件并运行。

分析和总结:

根据提供的数据,imutils 明显具有最高的帧速率,远高于其他库。这可能是因为 imutils 专注于提供快速的计算机视觉函数。
Pygame 也表现出相对较高的帧速率,但低于 imutils。
OpenCV 和 PyQt5 的帧速率较低,但仍然足够处理许多计算机视觉和多媒体应用程序的需求。
帧速率的选择通常取决于您的应用程序要求。如果您需要更高的性能和实时处理,imutils 或 Pygame 可能是更好的选择。如果您开发桌面应用程序或不需要高帧速率,OpenCV 和 PyQt5 可能足够满足您的需求。

捕获屏幕帧

1. pyautogui Frame Capture

如果您想在代码中使用pyautogui,您需要导入pyautogui模块。以下是修改后的代码:

import cv2
import numpy as np
import timeit
import pyautogui

def capture_and_display_frames(num_frames):
    frame_count = 0
    start_time = timeit.default_timer()

    # 创建一个窗口来显示捕获的屏幕帧
    cv2.namedWindow("Screen Capture", cv2.WINDOW_NORMAL)

    while frame_count < num_frames:
        # 截取屏幕上的帧
        screenshot = pyautogui.screenshot()
        screenshot = np.array(screenshot)

        # 显示捕获的屏幕帧
        cv2.imshow("Screen Capture", cv2.cvtColor(screenshot, cv2.COLOR_BGR2RGB))
        frame_count += 1

        # 按下q键退出循环
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    end_time = timeit.default_timer()
    elapsed_time = end_time - start_time
    frame_rate = frame_count / elapsed_time
    return frame_rate

if __name__ == "__main__":
    num_frames = 100
    frame_rate = capture_and_display_frames(num_frames)
    print(f"Frame Rate for {num_frames} frames: {frame_rate:.2f} FPS")

    # 关闭窗口并释放资源
    cv2.destroyAllWindows()

这段代码已经导入了pyautogui模块,并可以使用pyautogui来捕获屏幕帧。按下"q"键可以提前退出捕获过程。确保您已经安装了相关库,然后运行这段代码以执行所需的操作。

音频和视频捕捉

2. av Frame Capture

av 是一个多媒体处理库,它支持音频和视频捕捉。虽然它主要用于音视频处理,但也可以用于摄像头捕捉。以下是测试使用 av 打开摄像头并返回平均帧率的程序:

import av
import timeit

def capture_av():
    container = av.open("R.mp4")
    stream = container.streams.video[0]

    frame_count = 0
    start_time = timeit.default_timer()

    while frame_count < 100:
        frame = next(container.decode(stream))
        img = frame.to_image()
        # Process the captured frame as needed
        pass
        frame_count += 1

    end_time = timeit.default_timer()
    elapsed_time = end_time - start_time
    frame_rate = frame_count / elapsed_time
    return frame_rate

if __name__ == "__main__":
    frame_rate = capture_av()
    print("av Frame Rate:", frame_rate)

此程序使用 av 打开摄像头,捕捉100帧并返回平均帧率。请将此代码保存为一个单独的Python文件并运行。

接下来,我们将继续介绍使用 Twisted 和其他捕捉方法的程序。

python 2

SimpleCV Frame Capture

SimpleCV 是一个用于计算机视觉任务的库,它内置了摄像头捕捉和图像处理功能。以下是测试使用 SimpleCV 打开摄像头并返回平均帧率的程序:

from SimpleCV import Camera
import timeit

def capture_simplecv():
    camera = Camera()

    frame_count = 0
    start_time = timeit.default_timer()

    while frame_count < 100:
        image = camera.getImage()
        # Process the captured frame as needed
        pass
        frame_count += 1

    end_time = timeit.default_timer()
    elapsed_time = end_time - start_time
    frame_rate = frame_count / elapsed_time
    return frame_rate

if __name__ == "__main__":
    frame_rate = capture_simplecv()
    print("SimpleCV Frame Rate:", frame_rate)

此程序使用 SimpleCV 打开摄像头,捕捉100帧并返回平均帧率。请将此代码保存为一个单独的Python文件并运行。

总结

图像和视频帧捕获是计算机视觉和多媒体应用的基本组成部分。在Python中,有多种库和工具可供选择,适用于不同的需求和场景。本文提供了一个全面的指南,帮助读者了解不同的捕获方法,包括OpenCV、Pillow、Pygame、PyQt、imutils、av和SimpleCV。我们还强调了计算平均帧率的重要性,以评估性能。通过本文的指南,读者可以更好地选择适合其项目的图像和视频帧捕获方法,从而实现更高质量文章来源地址https://www.toymoban.com/news/detail-724204.html

到了这里,关于【OpenCV-PyQt5-PyGame-imutils】探索Python中的图像和视频捕获:性能分析与选择指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于python+pyqt的opencv汽车分割系统

    目录 一、实现和完整UI视频效果展示 主界面: 识别结果界面: 查看分割处理过程图片界面: 二、原理介绍: 加权灰度化 ​编辑 二值化 滤波降噪处理 锐化处理  边缘特征提取 图像分割 完整演示视频: 完整代码链接   图像灰度化的目的是为了简化矩阵,提高运算速度。彩

    2024年02月10日
    浏览(25)
  • python pyqt5与opencv 遇到的那些坑,pyqt5页面搭建,设置pyqt5设置背景图

    设置pyqt5的背景图片,可以设置一个lable控件,将控件至于底层,然后设置他的背景图 注意路径 解决代码 使用Qt Desiggnei 绘制界面后转换成py代码后 最好不要在生成的py页面代码添加 信号槽,到时候页面改动比较麻烦 转换代码 pyuic5 -o 【转换后的.py】 【UI界面的.ui】 推荐的方

    2024年02月09日
    浏览(48)
  • 基于python+pyqt实现opencv银行卡身份证等识别

        识别结果 查看处理过程 历史记录 无法粘贴视频........ 视频和代码都已上传百度网盘,放在主页置顶文章

    2024年02月11日
    浏览(27)
  • PyQt5 + Python3.7 + OpenCV人脸识别身份认证系统(附源码)

    基于PyQt5 + Python3.7 + OpenCV实现的人脸识别身份认证系统,附源码。 PyQt5 + Python3.7 + OpenCV 实现人员注册,信息修改,人脸识别获取相关信息 人员信息通过序列化存储在 datafile.txt 文件中 haarcascade_frontalface_default.xml 是OpenCV中自带的训练模型 font.ttf 是为了在cv2中显示中文而引入的字体

    2024年02月06日
    浏览(52)
  • 树莓派配置环境细节(JDK+pycharm+miniconda+pyqt5+opencv-python)

    一、java环境 1.1确认树莓派的版本信息 1.2把压缩包传到树莓派上,然后进行解压 1.3配置环境变量 1.4查看java环境 二、pycharm 三、miniconda 3.1miniconda下载 3.2miniconda 安装 3.3添加 .bashrc 配置 3.4使用conda创建python环境 3.5pytorch + torchvision安装 四、PyQt5 4.1PyQt5及SIP简介 4.2所需环境 4.3Py

    2024年02月01日
    浏览(54)
  • [Python] pyqt6+opencv实现摄像头图像的实时读取并显示(完整源代码)

    本文将会介绍如何通过opencv来实时捕获摄像头的图像,并通过pyqt6进行图像视频呈现。 1. 通过opencv的VideoCapture类读取摄像头的每一帧图像,通过pyqt6的QLabel来显示图像 2. 根据获取的图像的宽和高大小以及QLabel的大小来动态调整最后输出的图像的宽和高 3. 调整窗体大小,动态调

    2024年01月24日
    浏览(40)
  • 人脸识别系统OpenCV+dlib+python(含数据库)Pyqt5界面设计 项目源码 毕业设计

    Python语言、dlib、OpenCV、Pyqt5界面设计、sqlite3数据库      本系统使用dlib作为人脸识别工具,dlib提供一个方法可将人脸图片数据映射到128维度的空间向量,如果两张图片来源于同一个人,那么两个图片所映射的空间向量距离就很近,否则就会很远。因此,可以通过提取图片并

    2024年02月05日
    浏览(49)
  • python人脸识别考勤系统 dlib+OpenCV和Pyqt5、数据库sqlite 人脸识别系统 计算机 毕业设计 源码

    Python语言、dlib、OpenCV、Pyqt5界面设计、sqlite3数据库 本系统使用dlib作为人脸识别工具,dlib提供一个方法可将人脸图片数据映射到128维度的空间向量,如果两张图片来源于同一个人,那么两个图片所映射的空间向量距离就很近,否则就会很远。因此,可以通过提取图片并映射到

    2024年02月08日
    浏览(32)
  • 基于Dlib&YOLOv5的疲劳驾驶和分心行为检测系统(哈欠&喝水&抽烟&打电话检测)深度学习,Python,OpenCV,PyQT

    演示视频:https://www.bilibili.com/video/BV1eD421j7zy/?spm_id_from=333.999.0.0vd_source=b68c16e2de94acf010fb2e70eb676424 开发技术环境: Pycharm + Python + PyQt5 + OpenCV + YOLOv5, 系统通过驾驶员前方摄像头采集的驾驶行为实时图像,可以输出并显示该驾驶员的驾驶行为结果,将视频和结果显示在上位机界

    2024年04月14日
    浏览(51)
  • “探索图像处理的奥秘:使用Python和OpenCV进行图像和视频处理“

     1、上传图片移除背景后下载。在线抠图软件_图片去除背景 | remove.bg – remove.bg 2、对下载的图片放大2倍。ClipDrop - Image upscaler  3、对放大后的下载照片进行编辑。  4、使用deepfacelive进行换脸。 1)将第三步的照片复制到指定文件夹。C:myAppdeepfakelivetempDeepFaceLive_NVIDIAuserda

    2024年02月16日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包