Group Abstract Group Abstract

Message Boards Message Boards

0
|
10.2K Views
|
3 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Best filters/ways to improve ISO 800 image

Posted 12 years ago
I took a photo  using an  "analogic camera", reflex.
~1 min expos.
it was a foggy night,  storms in the horizon, and I was testing several exposures time. 

My goal is the little red spot in the center of the image. Also, there is blue points up corner left: stars.
Is there any way to process the image to better define this spot, stars, and some features that might be around?

For example, improve the mountains edges.
Fuji film, ASA 800.
The negative it was digitalized.

I want test filters that could improve the image below.
Color, grains, etc.
 
I accept suggestions!
POSTED BY: Marcelo De Cicco
3 Replies
POSTED BY: Marcelo De Cicco
One more comment. In order to extract position you can use:
morph = ImageMultiply[ImageMultiply[minFilter, 10], ImageMultiply[GaussianFilter[MorphologicalBinarize[ImageMultiply[minFilter, 10]],5], 2]]
and then
ImageAdd[image, MorphologicalPerimeter[Binarize[GaussianFilter[Dilation[Binarize@morph, DiskMatrix[10]], 10]]]]
POSTED BY: Grisha Kirilin
Hi Marcelo,

there are a lot of possibilities, even a simple Wiener filter gives a good result:
image = Import[
   "http://community.wolfram.com/c/portal/getImageAttachment?filename=000007.jpg&userId=33625"];
scale = 5;

wiener = ImageSubtract[image, WienerFilter[image, scale, 1]];
noise = ImageSubtract[image, WienerFilter[image, scale]];

result = ImageMultiply[ImageSubtract[wiener, noise], 2]
which is almost independent on the parameter "scale".
But you can do something more clever:
nonlocal = NonlocalMeansFilter[image, 2];
It works terribly slow because it has to compare a lot of image patches but the result is good. Then you have a numer of possibilities to remove background features from the image. For example:
topHat = TopHatTransform[nonlocal, 3];
or
fillingTransform = ImageSubtract[nonlocal, ColorNegate@FillingTransform@ColorNegate[nonlocal]];
I don't know that is better so let's use both:
combination = ImageAdjust@ImageMultiply[topHat, fillingTransform];
If you need to find only colored stars then you can subtract white background:
coloredOnly = ImageAdjust@ImageSubtract[combination, ColorConvert[combination, "Grayscale"]];
If you don't want to remove white stars completely, you can enhance colors:
coloredOnly = ImageAdd[combination, ImageSubtract[combination, ColorConvert[combination, "Grayscale"]]];
One more enhancement trick is:
minFilter = ImageAdd[coloredOnly, MinFilter[coloredOnly, 1]];
Finally, we can enjoy by the automatic thresholding in MorphologicalBinarize provided by Mathematica.
ImageMultiply[ImageMultiply[minFilter, 5],
Dilation[MorphologicalBinarize[ImageMultiply[minFilter, 10]], 1]]
POSTED BY: Grisha Kirilin
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard