{"id":25641970,"url":"https://github.com/rusenaite/frame-quality-clustering","last_synced_at":"2026-04-11T11:34:37.498Z","repository":{"id":278736312,"uuid":"935636366","full_name":"rusenaite/frame-quality-clustering","owner":"rusenaite","description":"Python application that processes video files to extract frames and analyze their quality using blur detection and clustering techniques.","archived":false,"fork":false,"pushed_at":"2025-02-21T12:14:08.000Z","size":59314,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-21T12:30:50.304Z","etag":null,"topics":["numpy","opencv","python","sklearn"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rusenaite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-19T19:08:49.000Z","updated_at":"2025-02-21T12:15:39.000Z","dependencies_parsed_at":"2025-02-21T12:40:53.126Z","dependency_job_id":null,"html_url":"https://github.com/rusenaite/frame-quality-clustering","commit_stats":null,"previous_names":["rusenaite/frame-quality-clustering"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusenaite%2Fframe-quality-clustering","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusenaite%2Fframe-quality-clustering/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusenaite%2Fframe-quality-clustering/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusenaite%2Fframe-quality-clustering/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rusenaite","download_url":"https://codeload.github.com/rusenaite/frame-quality-clustering/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240271532,"owners_count":19774859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["numpy","opencv","python","sklearn"],"created_at":"2025-02-23T05:16:47.892Z","updated_at":"2026-04-11T11:34:32.457Z","avatar_url":"https://github.com/rusenaite.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Video Frame Quality Analysis\n\nThis Python application processes video files to extract frames and analyze their quality using blur detection and clustering techniques. It groups frames based on their distortion level and produces a report, histogram, and a new video with highlighted blurred frames.\n\n## Features\n\n- Extracts frames from a given video file.\n- Analyzes each frame's quality based on motion blur using Laplacian variance.\n- Clusters frames by quality using K-Means clustering.\n- Identifies the most distorted frames and highlights them in a new video.\n\n ## Preview \n\n[Link to download highlighted blurred parts video](https://raw.githubusercontent.com/rusenaite/frame-quality-clustering/refs/heads/main/highlighted_video.mp4)\n\n\u003cimg src=\"blurred.png\" alt=\"Highlighted blurred part\" width=\"300\"/\u003e\n\u003cimg src=\"not_blurred.png\" alt=\"Non blurrred part\" width=\"300\"/\u003e\n\n## Output Files\n\n- Extracted Frames: `output_frames/frame_0001.jpg`, `frame_0002.jpg`, etc.\n- Analysis Report: `output_frames/analysis_report.txt`\n- Blur Distribution Chart: `output_frames/blur_analysis.png`\n- Highlighted Video: `highlighted_video.mp4`\n\n## Requirements\n\nRequired libraries and packages to run the project:\n- OpenCV\n- NumPy\n- Matplotlib\n- scikit-learn\n\n## Usage\n\n1. Update the `video_file` path in `process_video()` to specify your video file.\n2. Run the script to extract frames, analyze them for motion blur, and generate output files.\n\n## Installation\n\nTo install the required Python packages, you can run:\n\n```bash\npip install opencv-python-headless numpy matplotlib scikit-learn","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frusenaite%2Fframe-quality-clustering","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frusenaite%2Fframe-quality-clustering","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frusenaite%2Fframe-quality-clustering/lists"}