{"id":24119618,"url":"https://github.com/anjanasenanayake/arm-based-simple-image-processor","last_synced_at":"2026-05-12T11:38:52.809Z","repository":{"id":101465368,"uuid":"102945330","full_name":"AnjanaSenanayake/arm-based-simple-image-processor","owner":"AnjanaSenanayake","description":"Image processing library implemented with ARM assembly","archived":false,"fork":false,"pushed_at":"2017-09-09T10:14:38.000Z","size":28,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-11T09:54:38.392Z","etag":null,"topics":["arm","arm-assembly","computer-architecture","image-manipulation","image-processing","memory-storage","stack"],"latest_commit_sha":null,"homepage":null,"language":"Assembly","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/AnjanaSenanayake.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":"2017-09-09T09:58:18.000Z","updated_at":"2024-11-14T02:09:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"9be833d4-f409-4235-9a9b-19db1cc507f5","html_url":"https://github.com/AnjanaSenanayake/arm-based-simple-image-processor","commit_stats":null,"previous_names":["anjanasenanayake/arm-based-simple-image-processor"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnjanaSenanayake%2Farm-based-simple-image-processor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnjanaSenanayake%2Farm-based-simple-image-processor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnjanaSenanayake%2Farm-based-simple-image-processor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnjanaSenanayake%2Farm-based-simple-image-processor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnjanaSenanayake","download_url":"https://codeload.github.com/AnjanaSenanayake/arm-based-simple-image-processor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241190603,"owners_count":19925061,"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":["arm","arm-assembly","computer-architecture","image-manipulation","image-processing","memory-storage","stack"],"created_at":"2025-01-11T09:53:42.796Z","updated_at":"2026-05-12T11:38:52.761Z","avatar_url":"https://github.com/AnjanaSenanayake.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Image-Processing-in-ARM\nCredits:\nMini Project Description- Malin Premathilake\n\nA Basic Image processing library implemented with ARM assembly\n\nDescription\nImage processing is a field where a digitized image is analyzed to obtain information or\nmanipulated to improve the quality of the image. In image processing, the images are\nrepresented as a matrix. The RGB values of each pixel is represented by an element of\nthe matrix. (i.e. A single pixel is represented using three values. Each of these values\nmust be between 0-255)\nHowever, a grayscale image is represented using a single value per pixel.\nHence for simplicity,\nYou’ll be using only grayscale images\nInstead of actual images we’ll be using only the matrix representation :P\nThere are many operations involved in image processing. Here, we are interested in the\nfollowing three.\n1. Image inversion\n2. Rotation180\n3. Flip\n\n1. Inversion\nIn this operation, the colors of an image is inverted. (Figure 2)\nThis is done by applying the following formula to the matrix representation of the\nimage\nInverted_value = 255 - original_value\nE.g\nIf the matrix representation of an image A of size 2x3 pixels is\nimA = [ 43 45 123\n164 234 12]\nthen the inverted image’s matrix representation will be\nimA_inv = 255 - [ 43  45  123 = [ 212 210 132\n                  164 234 12]     91  21  243]\n                  \n2. Rotation180\nIn this operation, the image is rotated by 180 degrees (Figure 3)\nFor this the matrix itself must be rotated.\nE.g\nIf the matrix representation of an image A of size 3x4 pixels is\nimA = [ 43  45  123 132\n        164 234 12  211\n        32  121 1   200]\nthen the rotated image’s matrix representation will be\nrot_imA = [ 200 1   121 32\n            211 12  234 164\n            132 123 45  43 ]             \n            \n3. Flip\nIn this operation, the image is flipped along the vertical axis (Figure 4)\nFor this the right side of the matrix must be switched with the left side.\nE.g\nIf the matrix representation of an image A of size 3x4 pixels is\nimA = [ 43  45  123 132\n        164 234 12  211\n        32  121 1   200]\nthen the flipped image’s matrix representation will be\nflp_imA = [ 132 123 45  43\n            211 12  234 164\n            200 1   121 32 ]\n\nProgram inputs and outputs \n\nThe program should take the inputs in the following order:\n1. Number of rows in the matrix\n2. Number of columns in the matrix\n3. Operation code (explained below)\n4. Elements of the matrix\n\nThe program should give the following output:\n1. Type of operation executed\n2. Resulting matrix\n\nOperation codes are as below.\nDisplay the original without any change : 0 ( Original )\nInvert the image : 1 ( Inversion )\nRotate the image by 180 degrees : 2 ( Rotation by 180 )\nFlip the image : 3 ( Flip )\nIf any other value is given for the operation code, the following message should be\nprinted and the program must exit.\n\nInvalid operation\ne.g. Input matrix:\nimA = [ 43 45 123 132\n        164 234 12 211\n        32 121 1 200]\nProvide the inputs as below\n3 4 1 43 45 123 132 164 234 12 211 32 121 1 200\n\nThe first 2 values denote the number of rows and columns, the 3rd value denotes the\noperation and the following values are the elements of the matrix\nHence the output should be as follows:\n\nInversion\n212 210 132 123\n91 21 243 44\n223 134 254 55\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanjanasenanayake%2Farm-based-simple-image-processor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanjanasenanayake%2Farm-based-simple-image-processor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanjanasenanayake%2Farm-based-simple-image-processor/lists"}