{"id":29704422,"url":"https://github.com/anodicpassion/printing-accuracy-analyzer","last_synced_at":"2026-05-20T05:42:49.330Z","repository":{"id":304983921,"uuid":"1021485969","full_name":"anodicpassion/printing-accuracy-analyzer","owner":"anodicpassion","description":"This project provides a web-based application for analyzing the print quality of scanned documents by comparing them against a template. It identifies issues such as misalignment and blur, providing visual feedback and quantitative metrics.","archived":false,"fork":false,"pushed_at":"2025-07-17T14:35:54.000Z","size":689,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-17T16:40:39.113Z","etag":null,"topics":["numpy","opencv-python","print"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anodicpassion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-07-17T13:19:33.000Z","updated_at":"2025-07-17T14:36:30.000Z","dependencies_parsed_at":"2025-07-17T20:01:24.668Z","dependency_job_id":"8000cf92-c846-4957-934e-48baf4da8e17","html_url":"https://github.com/anodicpassion/printing-accuracy-analyzer","commit_stats":null,"previous_names":["anodicpassion/printing-accuracy-analyzer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/anodicpassion/printing-accuracy-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anodicpassion%2Fprinting-accuracy-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anodicpassion%2Fprinting-accuracy-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anodicpassion%2Fprinting-accuracy-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anodicpassion%2Fprinting-accuracy-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anodicpassion","download_url":"https://codeload.github.com/anodicpassion/printing-accuracy-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anodicpassion%2Fprinting-accuracy-analyzer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266691590,"owners_count":23969185,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","print"],"created_at":"2025-07-23T14:10:55.849Z","updated_at":"2026-05-20T05:42:49.304Z","avatar_url":"https://github.com/anodicpassion.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Print Quality Analysis Tool\n\n\nThis project provides a web-based application for analyzing the print quality of scanned documents by comparing them against a template. It identifies issues such as misalignment and blur, providing visual feedback and quantitative metrics.\n\n\n---\n\nhttps://github.com/user-attachments/assets/d488136b-b1d7-48fe-bcc9-ffd6febb1ca0\n\n\n---\n\n\n## Technologies Used\nThis project leverages a combination of Python libraries and a web framework to deliver its functionality:\nPython: The core programming language used for the application logic.\n- Flask: A lightweight and flexible micro web framework for Python. Flask is used to handle web requests, route URLs to Python functions, render HTML templates, and manage the overall web application structure. Its simplicity allows for rapid development and gives developers full control over the application's components.\n- OpenCV (Open Source Computer Vision Library): A powerful library for computer vision and image processing tasks. OpenCV is central to this project, enabling:\n   - Image Loading and Manipulation: Reading and processing image files (cv2.imread, cv2.cvtColor).\n   - Feature Detection and Matching: Using ORB (Oriented FAST and Rotated BRIEF) algorithm (cv2.ORB_create, orb.detectAndCompute, cv2.DescriptorMatcher_create, matcher.match) to find key points and descriptors for image alignment.\n   - Image Alignment (Homography): Calculating a homography matrix (cv2.findHomography) to align the scanned image with the template, correcting for perspective and rotation differences.\n   - Image Differencing: Calculating the absolute difference between images (cv2.absdiff) to identify variations.\nImage Thresholding and Morphological Operations: Applying thresholding (cv2.threshold) and dilation (cv2.dilate) to enhance differences and prepare for contour detection.\n- Contour Detection: Finding contours (cv2.findContours) to identify misaligned regions.\n- Drawing on Images: Drawing bounding boxes (cv2.rectangle) to visually highlight detected issues.\nBlur Detection: Utilizing the Laplacian variance method (cv2.Laplacian, .var()) to assess image sharpness.\n- NumPy: The fundamental package for scientific computing with Python. NumPy provides support for large, multi-dimensional arrays and matrices, along with a collection of high-level mathematical functions to operate on these arrays. In this project, OpenCV images are represented as NumPy arrays, and NumPy is used for array manipulations and calculations, such as in the homography estimation and image differencing.\n- os Module: Python's built-in module for interacting with the operating system. It's used for tasks like creating directories (os.makedirs), joining file paths (os.path.join), and deleting files (os.remove).\n- uuid Module: Python's built-in module for generating Universally Unique Identifiers (UUIDs). It's used to create unique filenames for uploaded images, preventing naming conflicts and ensuring secure storage.\n- Werkzeug: A comprehensive WSGI utility library that Flask is built upon. It handles fundamental web aspects like requests, responses, and routing behind the scenes, providing the underlying structure for Flask's operations.\n\n\n\n---\n\n## Installation \n- Clone the repo\n\n\n```shell\ngit clone https://github.com/anodicpassion/printing-accuracy-analyzer.git\n```\n\n- Change to project dir\n\n\n```shell\ncd printing-accuracy-analyzer\n```\n\n- Create a virtual environment and activate it\n\n\n```shell\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n\n\n- Kick-off the webserver\n\n\n```shell\npython3 app.py\n```\n\n\n--- \n\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0.\nSee the LICENSE file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanodicpassion%2Fprinting-accuracy-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanodicpassion%2Fprinting-accuracy-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanodicpassion%2Fprinting-accuracy-analyzer/lists"}