(Ah, still noobing out the attachment system. Think I got it now.)
Poita: No worries. I have attached a before and after shot to the original post. Plus the whole original picture - may have accidentally uploaded as a jpg (oops) but you get the idea. Explanation follows:
Top-left in the cropped image is the top-left corner of the "original" image. I've included a manually adjusted version (top-right) to better show exactly what is going on in that image. Basically you have a bunch of compression clouds and a few uncompressed rasters. The uncompressed rasters (8x8 pixel chunks) are stars. Starsoup scans each uncompressed raster for its brightest points and amplifies them along with any neighbouring pixels (3x3 pixel chunk). It then culls everything else to black (bottom-left). The blur (bottom-right) is added in GIMP but should be automated in the new version - apparently needs a rethink (ala Ivo). The new version will also preserve entire rasters (because that data is valuable) but will still only amplify the stars themselves and neighbouring pixels.
Why does it cull everything else to black, you ask?
Because pretty much all the so-called "noise" you're seeing in the manually adjusted image (top-right) is actually what the 3Gs camera records as a "no data" reading. Which, in film terms, just means it should be black. But it isn't black - why?! Whenever the camera captures, it will record this weird soupy stuff - which, before compression, is just a bunch of stray pixels fired by mistake. I don't really know the science behind that, but I'm told it's basically just phantom signals which can be received and "dirty" the result anywhere from the original button-tap, through the photosensitive plate, down the wires to the hard-drive itself. Take a photo with this camera inside a sealed light-proof box and you'll still get this soup - or whatever it's actually called. Then the machine compresses the image internally before any other software can touch it - making the problem worse. So you get a bunch of cloudy-looking stuff interlaced with larger green splotches. The point is - those cloudy bits should read as black and it's only a fault of the hardware that they don't...
...So I'm not precious with them. The camera didn't really see that stuff - so we can cull it.
I figure the only element that truly matters are the rasters that have actually recorded something - which you can see in the top-right image. But it gets a little tricky when rasters that have genuinely recorded something become compressed because they are below the compression threshold (their contrast is so low the iPhone automatically compresses them during capture - sometimes two or three times). I don't know the default compression level of the 3Gs camera - but it is obviously bad. It's an added pain because the data from the "switched on" rasters then gets blurred with the ugly soup around them. But I think I can amend Starsoup to recognise these compressed rasters. The paterns they exhibit are quite uniform because, at the pixel level, all stars look pretty much the same (except for color).
OKAY.... Long winded. But basically, the program only culls data which should have been recorded as black in the first place. We can see which parts should be black because the rasters in that part of the image have not been activated - as they would be in the presence of starlight.
As a note: the uncompressed rasters show what "noise" actually looks like in the 3Gs camera before compression. Each uncompressed raster still contains soup and noise - but the contrasts are much higher and the noise and soup are much more obvious due to lack of compression. If it were saved as a bitmap during capture, the whole image would be REALLY SPECKLY. Compression here makes it tricky to apply bias - but that's the point of this program.
As far as I'm aware, this is a problem with any camera when dealing with jpg images on a per-pixel level. But I took the original image on my iPhone, so I've been using it as a workhorse for tests.
Hope the images are what you wanted.
And irwjager: I'm pretty sure you just said all this anyway and far better too, but I really don't know the terminology of this field yet. This program is a labour of love - I'd much rather just have a program that already does this. StarTools?
|