Forgot your password?
typodupeerror
Graphics Software

Open Source Image De-Noising 205

Posted by kdawson
from the fuzz-be-gone dept.
GREYCstoration is an open-source tool able to de-noise, inpaint, or resize 2D color images. This is a command-line program developed by the IMAGE team of the GREYC Lab in France and is available for Unix, Mac, and Windows systems under the CeCILL license. The algorithm is based on anisotropic diffusion partial differential equations. These equations are able to smooth an image while preserving its main structures. The demo page presents interesting examples of color image de-noising and reconstruction. This is a serious free alternative to commercial products like Noise Ninja or Neat Image that perform the same kinds of operations. The tool is still a little bit hard to use (command-line based), but I hope the simple C++ API will ease the integration of the algorithm in more user-friendly interfaces. Previous versions of GREYCstoration are already available in Digikam and Krita.
This discussion has been archived. No new comments can be posted.

Open Source Image De-Noising

Comments Filter:
  • So does this mean I can start shooting my photos in ISO 400 and cleaning them up later?
    • Re:No more ISO 80? (Score:5, Informative)

      by drgonzo59 (747139) on Monday March 05, 2007 @10:56PM (#18246006)
      Keep shooting at ISO 80. De-noising will not add details, it will hide the noise pixeles with uniform colors but it will only guess. The only way to fill in those pixels with correct information is to shoot the scene at the correct ISO setting.

      The lower ISO you can get the more detail you could capture given that other parameters are fixed. Have you ever shot with Velvia ISO 50 film? -- it creates stunning details. I think Fujifilm discontinued it last year or so. In film the lower the ISO the finer the grain. As far as digital is concerned think of ISO as sensitivity of the CCD. You can turn the gain up to ISO 3200 but you will amplify a lot of noise too.

      • Re: (Score:2, Insightful)

        Yeah, looking at the demo pictures I see this is basically replacing noise with blur.

        I was thinking about this recently, and I think what we need is a digital camera which can somehow take multiple short exposure shots one after the other and then combine them into a single photo. The algorithm would have to be smart enough to detect movement of both the camera and the scenery in-between frames, so we're talking advanced software, but it does seem possible.

        Otherwise, having to choose between underexposed

        • I don't see your point. If you take multiple short exposures, you're using more time than taking an equivalent long exposure (by adding the time to open and close the shutter). Short exposures don't fix your blur problem either. You're going to get multiple underexposed images -- trying to do some sort of software amplification is just asking for trouble. There's a lack of information in the image itself, and it would have to be some pretty damn smart algorithm that can interpolate as good as a long exposur
          • Re: (Score:2, Interesting)

            by jakosc (649857) *
            I think you missed the GP's point

            The idea is that you can eliminate blur caused by camera movement by taking many short exposures (high noise because of the short exposure), then align and average them together to eliminate the noise. This will work, but the downside is that it does require computationally intensive image alignment (to remove the camera movement that would have caused the blur in the first place) But that could be done offline.
            • Re: (Score:3, Informative)

              by Anonymous Coward
              In fact, there already exists software for that purpose: ALE [dyndns.org]. And it is open-source too!
        • by mollymoo (202721)

          I was thinking about this recently, and I think what we need is a digital camera which can somehow take multiple short exposure shots one after the other and then combine them into a single photo. The algorithm would have to be smart enough to detect movement of both the camera and the scenery in-between frames, so we're talking advanced software, but it does seem possible.

          They already exist. [olympusamerica.com]

          • If you're referring to Olympus' "Digital Image Stabilization," here's how they describe it:

            Digital Image Stabilization Mode uses a high ISO sensitivity and fast shutter speed to enable you to [blah blah blah]

            Nothing fancy here about combining multiple exposures and detecting camera/subject movement; just using higher sensitivity than the 50 or 100 that many P&S users are used to, resulting in faster shutter speeds.
            • by fbjon (692006)
              In fact, that's not usually what's meant by image stabilisation at all. It's just freezing motion.
        • Re: (Score:2, Informative)

          by ramsun (62627)

          I was thinking about this recently, and I think what we need is a digital camera which can somehow take multiple short exposure shots one after the other and then combine them into a single photo.
          This guy http://www.cambridgeincolour.com/tutorials/high-dy namic-range.htm [cambridgeincolour.com] tells you how to do what you want, with Photoshop.

          Oye
        • by ceoyoyo (59147)
          If you set the parameters correctly, anisotropic diffusion will blur in homogenous regions (where variations are primarily due to noise) but not blur across edges. It's different than a plain gaussian blur and works much better... if you set the parameters correctly.
        • by drgonzo59 (747139)
          You have a better choice -- Lenses!. Buy an SLR, (I got a Pentax K10D - beautiful camera) and a fast (f/1.4) normal (50mm) lens. A fast lens makes a lot of difference. Remember just going from one aperture stop to the next lower one _doubles_ the amount of light. With a fast lense you can now capture detail in the low ligth without needing a tripod.

          Beware though, as you stray away from the sweet 50mm focal length you will pay astronomical prices for fast lenses...

      • Re: (Score:2, Interesting)

        by evel aka matt (123728)
        Fuji discontinued Velvia 50 because the new Velvia 100 produces images that looked as good, if not better. So there was no point to having a slower film when it was at best comparable to a faster one, especially in this day and age when low speed film is so unpopular.
        • Not so fast (Score:2, Informative)

          by JeremyR (6924)
          Fujifilm has announced plans to "bring back" Velvia 50:

          http://www.robgalbraith.com/bins/content_page.asp? cid=7-7900-8678 [robgalbraith.com]

          It's a new formulation, which they're tentatively calling "Velvia II," so don't write off Velvia 50 just yet :-)
          • by drgonzo59 (747139)
            It's funny how when they discontinued it, they just claimed that new Velvia 100 will replace it and provide the same amount of detail but with the benefit of a higher sensitivity. It was too good to be true and now in the link you provided they finally came clean and admited that it was because of a lack of materials that they disconintued the production, not because they inveted a new and better Velvia 100.

            Company talk, you gotta love. Always read between the lines, kind of like talking to women...

        • by cei (107343)
          Sadly, no. Velvia 100 doesn't look as good as Velvia 50. I know it's easy to say slow film is unpopular, as Velvia 50 and Kodak TechPan were dropped, but there are still people clamoring for both. (Or guarding hordes of either in their freezers...)
          • by drgonzo59 (747139)
            Or guarding hordes of either in their freezers...

            He-he, that's funny -- it desribes my wife too well. Every time I go to put food in there, the huge pack of Velvia and color infrared film is in my away. It's been like that since we got married. I keep telling her to switch completely to digital and she tells me I don't know what I am talking about, she is probably right...

            • Re:No more ISO 80? (Score:4, Informative)

              by StressedEd (308123) <ej,grace&imperial,ac,uk> on Tuesday March 06, 2007 @05:17AM (#18247800) Homepage

              I keep telling her to switch completely to digital and she tells me I don't know what I am talking about, she is probably right...

              I too have a fridge full of film (Velvia, Astia, Provia), however I accept that I'm a dinosaur and proud of it! Modern digital SLRs perform better than 35mm film in practically every respect and challenge medium format in quality. Only with large format is that not true - and large format is something of a niche! Soon of course even this will bow to the digital revolution.

              I suspect she's like me, stuck in the past and quite happy to stay there for the time being! There's still something magical about transparency film. The colour reproduction is very special, with a gamut wider than you can sense in either prints or monitors. Although the gamut of modern digital sensors is just as good, there's no way of actually sensing it, as the display devices aren't up to snuff! Wide gamuts make an enormous difference to an image. The colors you see in nature are far more diverse than those that can be reproduced in print or on a computer screen. It's only by actually seeing these things first hand that one can appreciate the difference, prints look strangely grey an lifeless in comparison.

              Ah, transparency film!

              I'll stop evangelising now - I'm probably preaching to the converted anyway!

    • Responses (Score:4, Informative)

      by lorcha (464930) on Tuesday March 06, 2007 @12:15AM (#18246498)
      If you're experiencing a lot of noise at ISO400, it's time for a new camera.

      Also, in response to your later post, what many DSLRs do for long exposures (usually taken at night and with high ISO and experience a lot of noise in the black areas) is to take another exposure immediately after the first one, but with the shutter closed. Then, the camera knows where the sensor noise is and can subtract it from the actual picture.

      So if you take an 8 sec. exposure and your camera freezes up for the following 8 sec, you'll know why.
      • Re: (Score:3, Informative)

        by ceoyoyo (59147)
        That removes amp glow, pattern noise and hot pixels, but it doesn't do anything for the thermal noise. On a reasonably short, high ISO exposure (ie anything you can take without a tripod) the thermal noise dominates. The others come into play when you're not necessarily shooting at a high ISO but you are leaving the shutter open for a long time.
    • Re: (Score:3, Informative)

      by kbielefe (606566)
      This sort of thing is okay for salvaging photos that can't be retaken, but no amount of computer correction can beat a photo taken with the proper camera settings. I'm an above average post-processor, but my favorite photographs usually don't need anything changed at all.
      • Re: (Score:3, Informative)

        by Kjella (173770)
        This sort of thing is okay for salvaging photos that can't be retaken, but no amount of computer correction can beat a photo taken with the proper camera settings. I'm an above average post-processor, but my favorite photographs usually don't need anything changed at all.

        I regularly find I want to fix things in post-processing, but noise isn't one of them. I find getting stuff like color balance, constrast, brightness, saturation etc. very hard to get right out directly from the cam, but usually the auto se
        • ISO myth (Score:3, Informative)

          by pikine (771084)

          Has ISO rating being abused by digital photography so much that nobody concerns shutter speed, aperture, and lighting anymore?

          What fundamentally matters for high motion scene is faster shutter speed. Higher ISO sensitivity makes sure the picture is more easily exposed. Bigger aperture, as well as the scene being well-lit, let more light into the lens, so these two factors also help with exposure.

          It is probably best illustrated by shooting a night scene. With dSLR or SLR, you can program long exposure o

    • Re: (Score:3, Interesting)

      by Cromac (610264)
      So does this mean I can start shooting my photos in ISO 400 and cleaning them up later?

      Get a better camera and you won't need to clean them up at ISO 400 and sometimes not at ISO 1600. Nikons new entry level DSLR, the D40, can take outstanding photos at ISO 1600 and even boosted to 3200 looks better than most P&S cameras do at ISO 200-400.

      Canon makes some terrific DSLRs as well, some with even better high ISO performance, I'm simply more familar with the Nikon line.

  • by Wizarth (785742) on Monday March 05, 2007 @10:34PM (#18245854) Homepage
    Can it remove the noise commonly used in CAPTCHA images? Will this be the next weapon in the war against spammers?
    • by Aladrin (926209)

      Open Source giveth, and Open Source taketh away.

      BTW, how's that the 'war against spammers'? Sounds like this weapon is FOR spammers.

    • Can it remove the noise commonly used in CAPTCHA images? Will this be the next weapon in the war against spammers?
      No, it will be blind people's next weapon in the war against discriminazi admins who treat blind people as collateral damage rather than as people.
    • by paganizer (566360)
      I had no problems using the tool in Debian, but when I tried both the CL and GUI version for windows, on both a Win2k and a WinXP machine, it not only didn't work but also didn't tell me what the problem was. And yes, imagemagik was on both systems.
      So, I don't think the spammers will be using this, unless spammers have really moved their operations on to the Linux platform.
  • Picture Cooler (Score:5, Informative)

    by DrDitto (962751) on Monday March 05, 2007 @10:35PM (#18245876)
    Another great free tool is called Picture Cooler. It rivals or exceeds Noise Ninja for certain images. Download it here: http://denoiser.shorturl.com/ [shorturl.com]

    But if you want images with less noise, try and buy a camera with a larger sensor. dSLR's have large sensors as do many Fuji cameras including their tiny P&S models. Most sensors on subcompact P&S cameras measure only 5.76x4.29mm (1/2.5"). Many of the smaller cameras by Fuji use a 1/1.8" sensor that measures 7.18x5.32mm.

    A nice explanation of noise and sensor size is here: http://www.clarkvision.com/imagedetail/does.pixel. size.matter/ [clarkvision.com]
    • Re: (Score:3, Insightful)

      by ZeroConcept (196261)
      On denoiser:
      FREE Picture Cooler--Noise reduction and most other adjustements 2.45 -- last update 5 JAN 2007
      Temporaly 15$ for the Full version
  • This looks like it's the closest to the image enhancement on the Enterprise (or any other tv show or movie) that i'm going to come. Very cool! Now to pick out crystal clear faces from distant blurry security cameras...
  • Artificial noises (Score:5, Interesting)

    by biocute (936687) on Monday March 05, 2007 @10:40PM (#18245908) Homepage
    It seems to perform a lot better when dealing with artificially-added noises than real-life images, as if it already knows how to tackle them.

    This pyramid photo [ensicaen.fr] has basically been 'ruined' after the denoising, I wonder if we added some synthetic noises in the background while leaving the stone face as is, would this app be able to denoise correctly?
    • This pyramid photo has basically been 'ruined' after the denoising ...

      Do you think? Are those details in the stone any more real than those in the sky? Some may have been lost, but I'm having a hard time deciding which should have stayed. The picture was sad to begin with.

    • Ever thought that is a bad picture to denoise any way? It is made up of a textured plain and pretty much nothing else, obviously it will see the detail as noise on such a small scale and simple picture.
  • by kcbrown (7426) <slashdot@sysexperts.com> on Monday March 05, 2007 @10:41PM (#18245910)

    This tool looks very cool, but today's semi-pro and pro (and even some consumer grade) cameras will store their images in a raw format which preserves 12 bits per color channel at a minimum.

    GIMP can't deal with these. Tools such as ufraw can convert them to 8 bits/channel images such as JPEG but don't allow you to actually manipulate the image in its native color resolution.

    Linux seriously needs a good image manipulation tool such as the GIMP with 16-bit or even 32-bit per color channel support built-in. This is particularly important for operations like sharpening.

    Cinepaint will do it but it's way behind in features compared with GIMP these days.

    What's the hold up with GIMP anyway? You'd think its developers would take this kind of issue seriously and would fix the engine to natively do, say, 32 bits per color channel internally.

    • Re: (Score:2, Insightful)

      Christ. The only interface more horrid than MDI is having a bajillion free floating windows that don't have any obvious connection to one another.

      With that, how about GIMP gets USABLE before ya cram in more "features".
      • Re: (Score:3, Funny)

        by fabs64 (657132)

        Christ. The only interface more horrid than MDI is having a bajillion free floating windows that don't have any obvious connection to one another.

        With that, how about GIMP gets USABLE before ya cram in more "features".
        For a while there I could've sworn you were talking about Photoshop on a mac, my mistake...
      • by g1zmo (315166)
        Isn't the multiple-window model just a particular form of MDI?
        • Re: (Score:2, Insightful)

          by Moraelin (679338)

          Isn't the multiple-window model just a particular form of MDI?

          Only in the same way that having a small heap of books on the floor is just a particular form of a bookcase.

          Seriously, I dunno why he got modded flamebait, but the GIMP interface _is_ horrible and every non-geek I've tried to convert to GIMP found it horrible. It's not even just the heap of disconnected windows. Just about everything in it works non-intuitively, or in some own way that breaks any reflexes and expectations you might already have.

          A

    • Re: (Score:3, Interesting)

      by fossa (212602)

      I understand GEGL [gegl.org] will be the new backend for GIMP, supporting deeper color among other things. A friend closer to GIMP development mentioned to me that it may be ready for GIMP sometime this year, but neither the GEGL website or quick searches turn up anything on that topic. A 2003 thread [mail-archive.com] stated that a move to GEGL would be very gradual so as not to necessitate major rewrites.

    • 32 bits would be great for processing but it's impractical for human eyes. Sure would be nice for the math routines, though, similar to the way audio mastering is done to reduce artifacts before downsampling.

      It is rather odd that such a thing isn't deep in the Linux world given Cinelerra has been around for years for video.
    • Re: (Score:3, Informative)

      by kalpaha (667921)
      If I remember correctly (from reading Boudewijn Rempts fascinating blog [valdyas.org]), Krita has a 16-bit color space. Wikipedia [wikipedia.org] says the following:

      In the 1.5 release, Krita has some features not available in most other free software graphics projects like GIMP, such as CMYK, L*a*b and many more colorspaces, with bit depths from 8 to 32 bits per channel (the GIMP is still limited to 8 bits per channel). Work is ongoing on support for natural painting tools that imitate painting or drawing with pencils, or paint brushes

    • by spitzak (4019)
      16 bit integers (or any number greater than 8) is a waste of time in image editing, and it is in some ways fortunate that Gimp avoids it, since it would take as much work to replace it as to add new data types.

      If you are going to use more than 8 bits then using 16-bit "half" floats, or 32 bit floats, is a much better use of the space, and modern processors are easily able to keep up with this. It also helps a lot if the floating data represents linear light levels, rather than the log or gamma curve data th
    • by nagora (177841) *
      Tools such as ufraw can convert them to 8 bits/channel images such as JPEG but don't allow you to actually manipulate the image in its native color resolution.

      I use ufraw to convert to 16bit/channel images (png, pnm etc) and then use either my own software or Krita to work in that space. Jpeg and GIMP are only brought in at the end (if at all) to make "user level" images for web or printing. 8 bit is fine for the result, but you do need more space to work in for manipulations.

      TWW

  • It'd be useful to have a sample of the filter applied to video for denoising/scaling down, would be much easier to spot how good it actually is compared to other methods. It seems to introduce its own artifacts in the form of those swirly-patterns, would they look natural from frame-to-frame?
    • Re: (Score:3, Interesting)

      Perhaps the techniques could be applied temporally rather than spatially, since video noise and film grain tend to change from frame to frame.

      I'd very much like to see a temporal version of the inpainting algorithm. They might be onto the next big step in automated morphing, smoother slow motion, or tweening for low frame rate animation.
    • by Dracos (107777)

      If this can be applied to a section of a video frame, I wonder how long it will be before video munging apps can strip out the network logos (the duck image in the impainting section gave me this idea)?

      Except for SpikeTV or FX... this thing doesn't seem like it can extrapolate 50% of a frame.

  • by LingNoi (1066278)
    This looks like a great app to use for generating more detailed height maps for flight sims. You could zoom in on your height map to the location your aitcraft if flying towards use this tool to create a more detailed height map out of that smaller height map image and then wack that new mesh into your game as you get closer to the ground.
    • Re: (Score:2, Informative)

      by caramelcarrot (778148)
      That'd be easily done using any standard fractal noise method (eg. Perlin noise)
      • About fifteen years ago I was heavily into image processing. I wrote a zoom algorithm that measured the standard deviation of the local area of a subpixel and constructed a fractal model to fill in the details. I designed it specifically for filling in the detail of low resolution DEM data. It worked pretty well and produced some interesting effects for photographic imagery too.
  • by DrLex (811382)
    Their examples even include an image of Boba Fett skiing!
    http://www.greyc.ensicaen.fr/~dtschump/greycstora t ion/img/res_ski.png [ensicaen.fr]

    On a more serious note, this look pretty useful. I've been able to get quite good results on many images with a combination of blurring, denoising, unsharp masking and other algorithms in Photoshop and the GIMP, but nothing beats a proper anisotropic diffusion. And in the versions of the aforementioned software I've used, there's no such thing available (maybe in newer versions,
  • by ceoyoyo (59147) on Monday March 05, 2007 @10:45PM (#18245948)
    is a pretty good algorithm. We use it for MRI images. The biggest problem is setting the parameters. Fortunately it's an embarrassingly parallel algorithm so I wrote a version that will run realtime on a video card. It's pretty cool to move the slider and watch the noise fade away, move it further and some of the edges blur, further and you start to lose the image.
  • Same effect (Score:5, Funny)

    by rez_rat (1618) on Monday March 05, 2007 @10:52PM (#18245980)
    by taking off my glasses!!
  • I just took a look at the example images.. The before and after comparisons look very similar to the results you would get from Photoshop's "Smart Blur" tool. So this might be a new way of doing it, but I don't see anything exciting about it. Am I missing something? Or is someone simply making a fuss for the sake of finding a new algorithm with a fancy name?
  • by gardyloo (512791) on Monday March 05, 2007 @10:57PM (#18246014)
    ... after those results, I don't want to hear any more bitching about reading yellow license plate numbers off of the reflection of a doorknob reflected in a one-pixel wide eyeball in a black and white security film shown in CSI!
  • by iPaul (559200) on Monday March 05, 2007 @11:10PM (#18246094) Homepage
    I keep pressing my ear to my computer, but the pictures don't make any noise. They're actually pretty quiet.
    • That's because they *removed* the noise, dummy! :]
      • Re: (Score:3, Funny)

        by iPaul (559200)
        Wow, I must have had it installed all along. Except, I think I'm out of space for pictures. I keep sticking more in the slot on the side of the laptop, but no more will fit.
  • by tjwhaynes (114792) on Monday March 05, 2007 @11:14PM (#18246120)
    Another tool which can be used to remove objects from pictures is Resynthesizer [logarithmic.net]. I've used this to remove overhead wires from photos, create more sky for a panorama and clean up dust spots of scans successfully.

    It can also take one image and repaint it in the style of another image, so you can take a black and white photo and a pencil sketch as inputs and end up with your photo rendered using parts of the pencil image which are similar in form.

    Another trick it can pull is creating tileable textures from any image. Sometimes the results are a little surprising if you start off with a picture of people at a party but they are totally seamless.

    It comes as a GIMP plugin and is easy to use if you are used to the GIMP.

  • While looking at these a voice in my head kept saying, "Enhance....Enhance....Enhance...."
  • but can it perform a "reverse algorithmic", CSI-style?
  • Related software (Score:3, Insightful)

    by zobier (585066) <zobier@@@zobier...net> on Tuesday March 06, 2007 @12:04AM (#18246430)
    I stumbled upon GREYCstoration the other week when I was looking for tracing software. The best I've found so far is Potrace [sourceforge.net] by Peter Selinger, he has a link to this noise reduction software on the Potrace homepage. Here's what Peter had to say about it:

    If the examples on the webpage are representative, then this is the most astonishingly good image regularization filter that I have ever seen. It is based on a non-linear diffusion technique. It can be used for noise and artifact removal, resizing, and inpainting (which means filling in missing image regions). It works on color photographs and cartoons.
    Both of these programs appear to be top class.
  • At first I thought the lightening was merely the loss of contrast. But it rather appears than an ambient light level has been added to the images. My best guess is that this is likely the average of the added noise. This makes sense if you consider that the idea is to take local hi-freq spikes and spread their influence around the image.

  • I hacked it into my image processing library a year or so ago:

    http://www.vips.ecs.soton.ac.uk/index.php?title=GR EYCstoration [soton.ac.uk]

    The big issue was memory use: at least for the version I adapted, it needs 20x as much memory to run as the size of the image you want to process. So a 3k x 3k 8-bit RGB image needs 1GB of RAM. I blame CImg (I think). It needs reimplementing in a more practical image processing library. The results are nice though, if you play with the parameters a bit.

  • It would be nice to make this tool available as a GIMP plugin.
  • by HuguesT (84078) on Tuesday March 06, 2007 @12:47PM (#18250920)
    (I'm not him although I know his work and his ex-supervisor)

    Also consider CImage [sourceforge.net], by the same author. CImage is a C++ image processing template library (cue to how much C++ sucks compared to the language du jour and/or LISP/Python/Haskell/OCaml, etc ;-)

    Concerning the inpainting algorithms that many here find impressive, there has been lots of work in this area. One of the seminal works is the paper at ICCV'99 by Efros and Leung [cmu.edu]. Many CS people will love that one since it is a fairly straightforward extention of the 1948 Markov model proposed by Shannon himself for the automated production of pseudo-english text (i.e. texts that look and sound english but really aren't). The Practice of Programming [bell-labs.com] book by Kernighan and Pike makes use of that algorithm to compare various languages in a fun way.

    The Tschumperlé algorithm works on different principles and is much faster, but their particular Markov model shows the impainting problem is not that difficult in practice.
  • Gimp Plugin (Score:3, Informative)

    by The Asmodeus (18881) on Tuesday March 06, 2007 @01:39PM (#18251814)
    This isn't new software, it's just a new release. My wife is a photographer and we've been using this with a Gimp plugin for quite awhile now.

    Gimp plugin can be found here: http://www.haypocalc.com/wiki/Gimp_Plugin_GREYCsto ration [haypocalc.com]

    It does ok and can salvage some photos, some, it can't.

    Thanks Freshmeat!! ^H^H^H^H^H^H^H^H^H^H Slashdot!!

"Pay no attention to the man behind the curtain." -- Karl, as he stepped behind the computer to reboot it, during a FAT

Working...