{"id":18809525,"url":"https://github.com/rfsantacruz/java_pdi_tools","last_synced_at":"2025-09-10T23:37:36.420Z","repository":{"id":19827463,"uuid":"23088556","full_name":"rfsantacruz/Java_PDI_Tools","owner":"rfsantacruz","description":"Digital Image Processing Toolbox coded in java","archived":false,"fork":false,"pushed_at":"2018-01-24T11:24:37.000Z","size":373,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-29T22:47:41.676Z","etag":null,"topics":["dip","frequency-filters","image-processing","java","spatial-filters"],"latest_commit_sha":null,"homepage":"","language":"Java","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/rfsantacruz.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}},"created_at":"2014-08-18T22:22:45.000Z","updated_at":"2018-01-24T10:07:00.000Z","dependencies_parsed_at":"2022-08-25T20:11:48.916Z","dependency_job_id":null,"html_url":"https://github.com/rfsantacruz/Java_PDI_Tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfsantacruz%2FJava_PDI_Tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfsantacruz%2FJava_PDI_Tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfsantacruz%2FJava_PDI_Tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfsantacruz%2FJava_PDI_Tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rfsantacruz","download_url":"https://codeload.github.com/rfsantacruz/Java_PDI_Tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239743516,"owners_count":19689507,"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":["dip","frequency-filters","image-processing","java","spatial-filters"],"created_at":"2024-11-07T23:16:40.446Z","updated_at":"2025-02-19T22:24:43.961Z","avatar_url":"https://github.com/rfsantacruz.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Digital Image Processing Tools\nThis is a collection of traditional digital image processing algorithms, e.g., image filtering, restoration and morphological operations, implemented in JAVA. This **is not** an optimized code, since this is a self-study project developed while studying the book [Digital Image Processing](https://www.amazon.com/Digital-Image-Processing-Rafael-Gonzalez/dp/013168728X) by Rafael C. Gonzalez and Richards E. Woods.\n\n## Contents\n\n### Image enhancement in Spatial Domain: \nWe first focus on image processing on the spatial domain. We implement basic [gray level transformations](./src/intensityFiltersPack) pipelines as well as concrete operations like logarithmic, gamma, and negative. Second, we demonstrate how to perform enhancements by image [histogram processing](./src/HistogramPack). Third, we code handy [arithmetic and logical pixel-wise operations](./src/SetOperationsPack). Finally, we develop the standard [spatial filtering operation](./src/SpatialFiltersPack), [smoothing filters](./src/SpatialFiltersPack) like median and mean, and [sharpening filters](./src/SpatialFiltersPack) based on gradient operators.\n\n### Image enhancement in Spatial Domain:\nSome operations are easy to compute in the frequency domain. Then, we develop an engine to perform the Fourier and Inverse-Fourier transform which accomplish the [space-frequency transformations](./src/FrequencyFiltersPack/FrequencyFilterExecutor.java) of images. Moreover, we implement the [homomorphic filter](./src/FrequencyFiltersPack/HomomorficFilter.java) as an example of how to use such an engine. \n\n### Morphological image processing:\n[Morphological operations](./src/MoforlogicOperationsPack) are an interesting class of binary image transformations. Here, we code from basic [erosion](./src/MoforlogicOperationsPack/ErosionMorfologicOperator.java) and [dilatation](./src/MoforlogicOperationsPack/DilatationMorfologicOperator.java) operations, passing trough opening and closing, and finishing with applications of region filling and shape detection. \n\nSee [ImageProcessor class](./src/ProcessorPack/ImageProcessor.java) for instructions on how to use these algorithms. However, note that **this toolbox is not a substitute for Matlab or OpenCV image processing toolboxes**, it is just a collection of programming exercises to better understand how image processing algorithms works.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frfsantacruz%2Fjava_pdi_tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frfsantacruz%2Fjava_pdi_tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frfsantacruz%2Fjava_pdi_tools/lists"}