https://github.com/jss95/araviq6

Python package for NDArray-based processing of QVideoFrame with Qt6.

https://github.com/jss95/araviq6

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary

Keywords

image-processing numpy pyqt6 pyside6 python qt6
Last synced: 6 months ago · JSON representation

Repository

Python package for NDArray-based processing of QVideoFrame with Qt6.

Basic Info
Statistics
  • Stars: 11
  • Watchers: 1
  • Forks: 2
  • Open Issues: 1
  • Releases: 6
Topics
image-processing numpy pyqt6 pyside6 python qt6
Created over 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.md

AraViQ6 - NDArray-based Video processing with Qt6

PyPI version Python Version Build Status Documentation Status License

AraViQ6 is a Python package which integrates NDArray-based image processing with video pipeline of Qt6.

It provides: - QVideoFrame processor based on array processing - Converters between NDArray and QVideoFrame - Convenience classes and widgets for array displaying

The following Qt bindings are supported: - PySide6 - PyQt6

How to use

There are two ways to use AraViQ6; using QVideoFrame-based pipeline, or using NDArray-based pipeline.

Frame-based pipeline

Frame-based pipeline is a high-level approach that works well with Qt Multimedia scheme.


QVideoFrame pipeline with AraViQ6

Frame-based pipeline consists of: 1. VideoFrameWorker 2. VideoFrameProcessor

QVideoFrame comes from and goes to Qt6's QVideoSink. AraViQ6's VideoFrameWorker converts QVideoFrame to numpy array, performs processing, and sends the results to downstream in both QVideoFrame and NDArray. User may subclass the worker to define own processing.

VideoFrameProcessor wraps the worker and provides API around it. Worker is mulithreaded in the processor.

Array-based pipeline

Array-based pipeline is a low-level approach. It can be useful when third-party package provides video frame in numpy array format.


NDArray pipeline with AraViQ6

Array-based pipeline consists of:

  1. FrameToArrayConverter
  2. ArrayWorker
  3. ArrayProcessor
  4. ArrayToFrameConverter

FrameToArrayConverter and ArrayToFrameConverter performs conversion between frame pipeline and array pipeline. To retain the metadata (e.g., timestamp) of QVideoFrame, these classes includes the original frame for the array.

ArrayWorker performs processing on incoming array and sends the result to downstream in NDArray. User may subclass the worker to define own processing.

ArrayProcessor wraps the worker and provides API around it. Worker is mulithreaded in the processor.

Convenicence classes

AraViQ6 also provides various convenience classes to make building the pipeline easier.

The following classes help setting array pipeline with the video source and the display. - NDArrayVideoPlayer - NDArrayMediaCaptureSession - NDArrayLabel

The following classes are plug-and-play widgets where user can process the video with minimal boilerplate. - PlayerProcessWidget - CameraProcessWidget

Examples

Use cases are provided in examples directory. They can be found in documentation as well.

Installation

Before you install, be careful for other Qt-dependent packages installed in your environment. For example, non-headless OpenCV-Python modifies the Qt dependency thus can make other Qt bindings unavailable.

araviq6 can be installed using pip.

$ pip install araviq6

Documentation

AraViQ6 is documented with Sphinx. Documentation can be found on Read the Docs:

https://araviq6.readthedocs.io/

If you want to build the document yourself, clone the source code and install with [doc] option. Go to doc directory and build the document.

$ pip install araviq6[doc] $ cd doc $ make html

Document will be generated in build/html directory. Open index.html to see the central page.

Owner

  • Login: JSS95
  • Kind: user

GitHub Events

Total
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 1
Last Year
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 261
  • Total Committers: 2
  • Avg Commits per committer: 130.5
  • Development Distribution Score (DDS): 0.05
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jisoo Song j****5@s****r 248
JSS95 5****5 13
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 9
  • Total pull requests: 66
  • Average time to close issues: about 20 hours
  • Average time to close pull requests: about 2 hours
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.11
  • Average comments per pull request: 0.08
  • Merged pull requests: 61
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JSS95 (9)
  • aesanchezgh (1)
Pull Request Authors
  • JSS95 (66)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 112 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 1
pypi.org: araviq6

Package for converting QVideoFrame to NDArray with Qt6

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 112 Last month
Rankings
Dependent packages count: 10.1%
Stargazers count: 20.4%
Forks count: 22.6%
Average: 32.3%
Downloads: 41.0%
Dependent repos count: 67.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • tlambert03/setup-qt-libs v1 composite
.github/workflows/publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
pyproject.toml pypi
requirements.txt pypi
  • importlib_resources *
  • numpy *
  • qimage2ndarray >=1.10