{"id":15009531,"url":"https://github.com/kmr0877/image-processing-with-opencv","last_synced_at":"2026-03-17T14:03:45.079Z","repository":{"id":135772423,"uuid":"99798633","full_name":"kmr0877/Image-Processing-with-OpenCV","owner":"kmr0877","description":"To read the given Sergei Prokudin Gorsky image file,perform simple mathematical computations on images and reconstruct using image pyramids and perform image adjustments such as improving contrast,brightness etc. and produce a clear image output","archived":false,"fork":false,"pushed_at":"2017-09-17T06:33:30.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-12T14:46:24.382Z","etag":null,"topics":["brightness-control","color-scheme","contrast-enhancement","grayscale-images","image-processing","numpy-library","opencv","python-3-5","rgb-color","rgb-color-converter"],"latest_commit_sha":null,"homepage":"https://en.wikipedia.org/wiki/Sergey_Prokudin-Gorsky","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kmr0877.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}},"created_at":"2017-08-09T10:59:14.000Z","updated_at":"2017-09-25T05:51:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"ad2f9f30-95b7-4d11-9ff7-fa529c4b1263","html_url":"https://github.com/kmr0877/Image-Processing-with-OpenCV","commit_stats":{"total_commits":27,"total_committers":1,"mean_commits":27.0,"dds":0.0,"last_synced_commit":"bdc0c445e0100de8e50157dc4f27137b093626bb"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kmr0877/Image-Processing-with-OpenCV","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmr0877%2FImage-Processing-with-OpenCV","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmr0877%2FImage-Processing-with-OpenCV/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmr0877%2FImage-Processing-with-OpenCV/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmr0877%2FImage-Processing-with-OpenCV/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kmr0877","download_url":"https://codeload.github.com/kmr0877/Image-Processing-with-OpenCV/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmr0877%2FImage-Processing-with-OpenCV/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28055934,"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-12-26T02:00:06.189Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["brightness-control","color-scheme","contrast-enhancement","grayscale-images","image-processing","numpy-library","opencv","python-3-5","rgb-color","rgb-color-converter"],"created_at":"2024-09-24T19:26:12.468Z","updated_at":"2025-12-26T14:12:02.633Z","avatar_url":"https://github.com/kmr0877.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Aims and Objective\nSergei  Prokudin Gorsky(1863-1944)  was  a  Russian  photographer  and  chemist  whose \ncollection of colour photographs is the oldest surviving to this date. \nHe used a camera that took a sequence of three black and white exposures using blue, red and green filters. By projecting \nthe three images using colored light it was then possible to recover the original colours. See herefor more details. At the beginning of the 20th century, Prokudin-Gorsky embarked on a many year project to systematically document the life of the Russian Empire by means of the new  colour  imaging  technology.  He  then  took  many  of  the  resulting  negatives  with  him  on \nemigration following the revolution of 1917 and they were eventually purchased and digitizedby the US Library of Congress. \nThe  objective  of  this  task  is  to  produce  high  quality  colour  reconstructions  from Prokudin-Gorsky's negatives using simple image processing techniques. \n\n## _TASK_1_\nA program that takes any one of these files as an input and produces a corresponding colour image as output. To do this you should divide the original image into three parts and then align the second and third channels to the first, displaying the \nresulting offsets for each channel. \nA  simple  way  to  perform  the  alignment  is  by  searching  through  all  possible  offsets  in  some suitable  range  (e.g.  20  pixels  for  low  resolution  images)  and  computing  for  each  a  score measuring the quality of the match. Three suitable metrics include sum of squared differences (SSD), sum of absolute differences (SAD) and the normalizedcross correlation (NCC). \n\n## _TASK_2_\nSearching  through  all  offsets  can  become  computationally  expensive  for  large  resolution images. To speed up the search procedure you can use a so - called image pyramid. An image pyramid  is  essentially  the  image  at  multiple  scales,  with scales  varying  by  a  factor  of  two. Alignment  can  then  be  done  sequentially,  starting  with  the  highest  level  and  incrementally updating your estimates as you go down the pyramid. \n## _TASK_3_\nTry  to  improve  the  visual  quality  of  the  results  of  the  basic  algorithm.  Some  possibilities include colour and contrast adjustments, using a more sophisticated alignment procedure and automatically removing borders.One possible method I implemented is mean filter to improvise the obtained image in task_1 and task_2.Several other techniques availbe and can be used to enhance the quality of the image.\n\n## _Implementation and Design_ : \nThe entire implementation is implemented using python programming language and works for versions 2.7+ which also requires opencv and numpy libraries installed.\n\n## _Software_\nDownload OpenCV and read guided tutorial: http://opencv.org/\n\n## _Format for Testing_ : \nThe following commands allows the user to test the implementation.\n# python imageprocessing.py IMAGE_FILE_NAME\n## _Sample Interaction_ :\npython imageprocessing.py devillers.jpg \n\n\n\n## Sample Image before Processing\n![stones](https://user-images.githubusercontent.com/26761582/29645709-a9f7cb36-88c2-11e7-888d-1d191b60e43a.jpg)\n\n## Image after processing pixel by pixel\n\n\u003cimg width=\"612\" alt=\"screen shot 2017-08-24 at 11 50 20 am\" src=\"https://user-images.githubusercontent.com/26761582/29645801-0dbef004-88c3-11e7-9806-a20932af4714.png\"\u003e\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmr0877%2Fimage-processing-with-opencv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkmr0877%2Fimage-processing-with-opencv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmr0877%2Fimage-processing-with-opencv/lists"}