Click here to Skip to main content
15,887,337 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello,

I have displayed a partial chessboard on a glass surface using a DLP projector. I have used my Raspberry pi camera to capture the virtual image of the checkerboard on the glass surface.
The quality of the resulting image is very poor (due to flickering and noise). I want to use OpenCV to enhance my image quialty so that it atleast has the same grayscale value as the original.
Currently the image is so poor that when i convert it into grayscale, most of the line information is lost.

Is there any way that we can enhance the quailty of the virtual image to look similar to the original image? fiddling with the birghtness or contrast of the image?

What I have tried:

i tried
fastNlMeansDenoising

Denoising — OpenCV 2.4.13.2 documentation[^]
but then my code gets stuck in an infinite loop when i try my image alignment algorithms on the resulting image.

i have also tried the following sequence
grayscale > Gaussain blur (kernel size 2) > addweighted of gray scale and gaussian > erode > dilate.
The resulting image still has poor quailty

I have also tried histogram equilization, but the result doesnt improve
Posted
Updated 8-Jan-17 22:26pm

1 solution

You can't make a better image from a bad one.

I suggest to take a new image using a better camera. Then use an image processing application rather than trying to do it programmatically.
 
Share this answer
 
Comments
violence666 9-Jan-17 4:39am    
I have thought of the same, but i am restricted to use a raspberry Pi camera. The quailty of the image is good during the day, but I also need to test the images during low light.
Jochen Arndt 9-Jan-17 4:49am    
So you need to capture images periodically and process them?

That was not clear from your question. But using an image processing app to try out which methods give the best results might be still an option.

You are taking pictures of DLP produced images?
Then you need low ambient light for best images. Or did I get something wrong?

But again:
Don't try to get more information out of a bad image. Try to enhance the environmental conditions instead when using a different camera is no option.
violence666 9-Jan-17 4:59am    
yes. I need to capture a set of 2 images (one image of the real chessboard, the other image of the virtual chessboard displayed by the DLP project) and then compare them for image alignment.
For now i am working on only 2 images to prove my theory.

My restriction is that i HAVE to use a raspberry Pi and its stock camera for image processing.
I tried this method
http://stackoverflow.com/questions/4993082/how-to-sharpen-an-image-in-opencv
but still no luck.

Is there a way i can upload my images here?
violence666 9-Jan-17 4:59am    
I will try to enhance the light for the virtual image and bright image now.
Jochen Arndt 9-Jan-17 5:10am    
For the non-DLP image you might use an additional light source (LED flashlight) when the ambient light is low. This can be driven by the Pi and enabled when an image is noisy or by using an additional light sensor.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900