The Signal Viewer is a desktop application developed using Python and Qt. It provides a multi-port, multi-channel signal viewer with the following key features:
- Signal Browsing: Users can open any signal file from their PC. The application includes sample signals from three different medical types (e.g., ECG, EMG, EEG) with both normal and abnormal examples.
- Real-Time Signal Connection: Users can connect to a website that emits real-time signals, read the emitted signal, and plot it.
- Dual Graph Display: The application features two main graphs with independent controls. Users can link or unlink the graphs for synchronized or independent operation.
- Non-Rectangle Graph: A unique non-rectangle graph is included to display suitable signals in cine mode.
- Signal Manipulation: Users can manipulate signals through UI elements to change color, add labels, control cine speed, zoom, pan, scroll, and more.
- Signal Glue Feature: The application allows users to cut and glue parts of signals from different graphs into a third graph with customizable interpolation parameters.
- Exporting & Reporting: Users can generate PDF reports with snapshots and statistical data (mean, std, duration, min, max) for the glued signals.
- Browse and open signal files from the PC.
- Connect to a real-time signal website.
- Independent and linked dual graph controls.
- Non-rectangle graph for cine mode signal display.
- Signal manipulation features (color change, zoom, pan, scroll, pause, play, rewind, etc.).
- Signal glue operation with customizable parameters.
- Export reports in PDF format with signal snapshots and data statistics.
Demo_video.mp4
- Python
- PyQt
- Pyqtgraoh (for plotting)
- PDF generation libraries (e.g., ReportLab or FPDF)
- Clone the repository:
git clone https://github.com/Mazenmarwan023/signal-viewer.git
- Navigate to the project directory:
cd signal-viewer - Install the required dependencies:
pip install -r requirements.txt
- Run the application:
python main.py
We appreciate everyone's contributions to this project!
This project is open-source and available under the MIT License.