Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kmr0877/image-processing-with-opencv
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
https://github.com/kmr0877/image-processing-with-opencv
brightness-control color-scheme contrast-enhancement grayscale-images image-processing numpy-library opencv python-3-5 rgb-color rgb-color-converter
Last synced: 13 days ago
JSON representation
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
- Host: GitHub
- URL: https://github.com/kmr0877/image-processing-with-opencv
- Owner: kmr0877
- License: mit
- Created: 2017-08-09T10:59:14.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-09-17T06:33:30.000Z (over 7 years ago)
- Last Synced: 2024-12-22T14:57:05.972Z (13 days ago)
- Topics: brightness-control, color-scheme, contrast-enhancement, grayscale-images, image-processing, numpy-library, opencv, python-3-5, rgb-color, rgb-color-converter
- Language: Python
- Homepage: https://en.wikipedia.org/wiki/Sergey_Prokudin-Gorsky
- Size: 14.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Aims and Objective
Sergei Prokudin Gorsky(1863-1944) was a Russian photographer and chemist whose
collection of colour photographs is the oldest surviving to this date.
He used a camera that took a sequence of three black and white exposures using blue, red and green filters. By projecting
the 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
emigration following the revolution of 1917 and they were eventually purchased and digitizedby the US Library of Congress.
The objective of this task is to produce high quality colour reconstructions from Prokudin-Gorsky's negatives using simple image processing techniques.## _TASK_1_
A 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
resulting offsets for each channel.
A 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).## _TASK_2_
Searching 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.
## _TASK_3_
Try 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.## _Implementation and Design_ :
The entire implementation is implemented using python programming language and works for versions 2.7+ which also requires opencv and numpy libraries installed.## _Software_
Download OpenCV and read guided tutorial: http://opencv.org/## _Format for Testing_ :
The following commands allows the user to test the implementation.
# python imageprocessing.py IMAGE_FILE_NAME
## _Sample Interaction_ :
python imageprocessing.py devillers.jpg## Sample Image before Processing
![stones](https://user-images.githubusercontent.com/26761582/29645709-a9f7cb36-88c2-11e7-888d-1d191b60e43a.jpg)## Image after processing pixel by pixel