{"id":19681255,"url":"https://github.com/hoangvangioi/image-processing","last_synced_at":"2026-05-07T19:05:24.373Z","repository":{"id":210408977,"uuid":"726270550","full_name":"hoangvangioi/image-processing","owner":"hoangvangioi","description":"An image processing website using FastApi and ReactJS","archived":false,"fork":false,"pushed_at":"2024-12-02T22:35:03.000Z","size":1770,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-10T05:36:30.886Z","etag":null,"topics":["fastapi","image-processing","opencv-python","reactjs"],"latest_commit_sha":null,"homepage":"https://image-processing.hoangvangioi.com","language":"JavaScript","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/hoangvangioi.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":"2023-12-01T22:58:35.000Z","updated_at":"2024-08-15T14:36:54.000Z","dependencies_parsed_at":"2025-01-10T05:44:28.236Z","dependency_job_id":null,"html_url":"https://github.com/hoangvangioi/image-processing","commit_stats":null,"previous_names":["hoangvangioi/image-processing"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoangvangioi%2Fimage-processing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoangvangioi%2Fimage-processing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoangvangioi%2Fimage-processing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoangvangioi%2Fimage-processing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hoangvangioi","download_url":"https://codeload.github.com/hoangvangioi/image-processing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240990749,"owners_count":19889934,"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":["fastapi","image-processing","opencv-python","reactjs"],"created_at":"2024-11-11T18:07:23.325Z","updated_at":"2025-10-27T07:02:05.306Z","avatar_url":"https://github.com/hoangvangioi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 1. Âm bản\nCông thức `s = T(r) = Intensivemax - r` mô tả quá trình biến đổi ảnh âm bản trong xử lý ảnh số. Trong công thức này:\n- `s` là giá trị mức xám mới sau khi biến đổi.\n- `T(r)` là hàm biến đổi mức xám.\n- `Intensivemax` là giá trị mức xám tối đa, thường là 255 cho ảnh xám 8-bit.\n- `r` là giá trị mức xám ban đầu của pixel.\n\n# 2. Thresholding\n```python\nif src[i] \u003e= T:\n    dest[i] = MAXVAL\nelse:\n    dest[i] = 0\n```\n- `src[i]` là giá trị mức xám ban đầu của pixel.\n- `T` là giá trị ngưỡng.\n- `MAXVAL` là giá trị mức xám tối đa, thường là 255 cho ảnh xám 8-bit.\n- `dest[i]` là giá trị mức xám mới sau khi áp dụng ngưỡng.\n\n# 3. Logarit\n$$s = c \\cdot \\log(1 + r)$$\n- `s` là giá trị pixel đầu ra\n- `r` là giá trị pixel gốc\n- `c` là hằng số tỷ lệ\n\n# 4. Exponential\n$$s = c \\cdot r^\\gamma$$\n- `s` là giá trị pixel đầu ra\n- `r` là giá trị pixel gốc\n- `c` là hằng số tỷ lệ\n- `gamma` là hệ số gamma\n\n# 5. Histogram Equalization\n- \n\n# 6. Averaging Filter\n$$g(x, y) = \\frac{1}{mn} \\sum_{i=-a}^{a} \\sum_{j=-b}^{b} f(x+i, y+j)$$\n\n- `g(x, y)` là giá trị pixel tại vị trí `(x, y)` sau khi áp dụng bộ lọc.\n- `f(x+i, y+j)` là giá trị pixel tại vị trí `(x+i, y+j)` trong hình ảnh gốc.\n- `m` và `n` là kích thước của mặt nạ bộ lọc (trong trường hợp của bạn, cả `m` và `n` đều bằng 3).\n- `a` và `b` là nửa kích thước của mặt nạ bộ lọc (trong trường hợp của bạn, cả `a` và `b` đều bằng 1).\n- Tổng được tính trên tất cả các pixel trong vùng lân cận của pixel `(x, y)` được xác định bởi mặt nạ bộ lọc.\n\n# 7. Weighted Averaging\nBộ lọc Gaussian hoạt động dựa trên công thức sau:\n\n$$g(x, y) = \\frac{1}{\\sum_{i=-a}^{a} \\sum_{j=-b}^{b} w_{i,j}} \\sum_{i=-a}^{a} \\sum_{j=-b}^{b} w_{i,j} \\cdot f(x+i, y+j)$$\n\n- `g(x, y)` là giá trị pixel tại vị trí `(x, y)` sau khi áp dụng bộ lọc.\n- `f(x+i, y+j)` là giá trị pixel tại vị trí `(x+i, y+j)` trong hình ảnh gốc.\n- `w_{i,j}` là trọng số của pixel tại vị trí `(i, j)` trong mặt nạ bộ lọc.\n- `a` và `b` là nửa kích thước của mặt nạ bộ lọc.\n- Tổng được tính trên tất cả các pixel trong vùng lân cận của pixel `(x, y)` được xác định bởi mặt nạ bộ lọc.\n\n# 8. Median Filter\n- \n\n# 9. Roberts Operator\n$$g(x, y) = \\sqrt{(f * G_x)^2 + (f * G_y)^2}$$\n\n- `g(x, y)` là giá trị pixel tại vị trí `(x, y)` sau khi áp dụng toán tử Roberts.\n- `f * G_x` và `f * G_y` là kết quả của việc lọc hình ảnh với mặt nạ `G_x` và `G_y`.\n\n# 10. Sobels Operator\n$$g(x, y) = \\sqrt{(f * G_x)^2 + (f * G_y)^2}$$\n\n- `g(x, y)` là giá trị pixel tại vị trí `(x, y)` sau khi áp dụng toán tử Sobel.\n- `f * G_x` và `f * G_y` là kết quả của việc lọc hình ảnh với mặt nạ `G_x` và `G_y`.\n\n# 11. Laplacian Operator\n$$g(x, y) = f * L$$\n\n- `g(x, y)` là giá trị pixel tại vị trí `(x, y)` sau khi áp dụng toán tử Laplacian.\n- `f * L` là kết quả của việc lọc hình ảnh với mặt nạ `L`.\n\n# 12. Prewitt Operator\n$$g(x, y) = \\sqrt{(f * G_x)^2 + (f * G_y)^2}$$\n\n- `g(x, y)` là giá trị pixel tại vị trí `(x, y)` sau khi áp dụng toán tử Prewitt.\n- `f * G_x` và `f * G_y` là kết quả của việc lọc hình ảnh với mặt nạ `G_x` và `G_y`.\n\n# 13. Canny Operator\n- \n# 14. OTSU Algorithm\n$$\\sigma^2(t) = \\omega_{bg}(t)\\sigma^2_{bg}(t) + \\omega_{fg}(t)\\sigma^2_{fg}(t)$$\n\n- $\\omega_{bg}(t)$ và $\\omega_{fg}(t)$ là xác suất số lượng pixel cho mỗi lớp tại ngưỡng $t$.\n- $\\sigma^2_{bg}(t)$ và $\\sigma^2_{fg}(t)$ là phương sai của giá trị màu sắc cho mỗi lớp tại ngưỡng $t$.\n\n# 15. Run-Length Coding (RLC) Algorithm\n- \n# 16. Lempel-Ziv-Welch (LZW) Algorithm\n- \n# 17. Huffman Coding Algorithm\n- \n# 18. Erosion Image\n- \n# 19. Dilation Image\n- \n# 20. Closing Image\n- \n# 21. Opening Image\n- ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoangvangioi%2Fimage-processing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoangvangioi%2Fimage-processing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoangvangioi%2Fimage-processing/lists"}