In gimp, I combine different filters. For different noise I have different sollutions. Do you know this filter? āDcam Noise 2 0.64ā, the code is here:
I know it influences the borders of the image, but I donāt know why I canāt find much information about this filter. In combination with Ians āsave noiseprintā in GāMIC I often have good results. Do other people know if something is wrong with āDcam Noise 2ā?
edit: I now see āDcamā is free and not open source, line five of code: āThis program is free softwareā. But still I am curious to know why I can find almost no info about this noise reduction.
I had the most and quickest success with darktables denoise tools. For smoothish surfaces and chroma I usually apply either denoise profiled with wavelets or their flavor of bilateral filter. For textured/detailed surfaces or low iso shots I tend to use denoise profiled with nl means. Finally for the color blotches in high iso images (usually iso 6400+) I use the (wavelet based?) equalizer to reduce the offending frequency range(s).
The draw backs with what is in darktable:
No darkframe subtraction or lmmse (thatās why I usually use RT to develop raws for my astro photography, followed by stacking)
It can end up in quite a bit of manual work to get high quality results. Iām not sure if the ādetectingā surfaces part can be automatized without machine learning and massive amounts of data but it would be nice if it could.
The UI is clumsy. For bilateral noise reduction one has to set R, G, B independently which at least I very rarely do. Except for the (non profiled) nl means adjusting chrome/luma independently or adjusting the mix needs to be done via the blending system.
I didnāt get good results with the noise reduction in RT (except for lmmse/igv but that only goes so far) or GMIC. I think part of it is that itās hard to find the right settings and that they are slow compared to DT which makes the tweaking process a pain.
One thing I wanted to try for a while is running a NL means like filter with several images of the same scene at once. I imagine it could result in quite similar pictures to stacking but without requiring the images to line up perfectly.
The new patch-pca method GāMIC filter is really state of the art. But is very slow on simple computers of everyday people. Maybe it is more interactive about five years.
[quote=āiarga, post:4, topic:1132ā]
The new patch-pca method GāMIC filter is really state of the art. But is very slow on simple computers of everyday people. Maybe it is more interactive about five years.
[/quote]Now I had to try that.
[quote=āiarga, post:4, topic:1132ā]
But is very slow on simple computers of everyday people.
[/quote]Can I run gmic/gimp on a massive cluster? My employer probably wouldnāt be thrilled if I broke their infrastructure to denoise photographs but it might be good fun. Then again given that it takes 35 minutes to run on my i7, it would probably still be painfully slow.
The preview is fast enough to be useful but given that it is a non local method Iām not sure how accurate it is. On the full image it takes a long time. The parameters are not exactly self explanatory either. So I guess itās practically not usable for now.
But that is a typical resolution of a forum-avatar, so it is still usable.
Yes, I didnāt word that correctly itās not usable for what I had in mind. I also messed up by confusing the patch based version with the block based one. So Iām sorryĀ².
I tried it on a smaller image now and the results are nice.
This does work well if the offset between the images is small. Otherwise you have to use a large, time-consuming, search radius. Iāve tested it on some photos of people and due to the natural movement, the search radius needed to be prohibitively large.
[quote=āIain, post:9, topic:1132ā]
This does work well if the offset between the images is small. Otherwise you have to use a large, time-consuming, search radius. Iāve tested it on some photos of people and due to the natural movement, the search radius needed to be prohibitively large.
[/quote]Makes sense. I remember seeing some hash based algorithm(s) which might be less sensitive to the search radius.
Another way might be to build a rough lookup table between the image coordinates beforehand using some sort of feature matching.
But I think even with a small search radius this could be very useful for landscape shots where the camera is on a tripod but things like the wind moving branches introduce motion.
Combining images with small movements of a few pixels should help reduce demosiacing errors/artifacts.
Iāve done this using Hugin, aligning and stacking the results of a burst, but increasing the canvas size to twice the original size (4x the pixels) and then deconvolving. It works great on solid subjects but landscapes are a no go because trees ruin everything; theyāre always moving at least a little. It also benefits from a camera with an overly sharp lens and no AA filter, like my GR.
So, from this first round f comments I would say that Darktableās non-local means tool is a good starting point and a sort-of must have for good and quick noise reduction.
I wonder what could be the differences compared to the non-local means tool in GāMIC (which after some quick experimenting seems to be slower than the DT equivalent). Maybe @David_Tschumperle has a word to say on this point
I have a GāMIC filter Iāve been playing with. I,m on Mobil so canāt post it at the moment.
You may be interested in this tool for motion compensated stacking
Edit:
Here is my GāMIC filter. Itās pretty basic. It needs two layers as input. It āmoves patchesā in the bottom image to match the top one and outputs a single image. The number in the top left corner is how many minutes it took.
#@gimp z_bland: z_bland,z_bland(0)
#@gimp : Scale = float(3,.5,50)
#@gimp : Radius = int(3,3,30)
z_bland:
# moves patches in the bottom image to match the top one
[1]
-repeat {2*$2+1} i={$>-$2-1}
-repeat {2*$2+1} j={$>-$2-1}
--shift[1] $i,$j,0,0,2
--sub[0,2]
--sub[0,3]
-l[4]
-abs
-blur {($1*2)-1}
-endl
-l[5]
-abs
-blur {($1*2)-1}
-endl
--min[4,5]
-eq[4] [6]
-eq[5] [6]
-rm[6]
-mul[2,4]
-mul[3,4]
-max[2,3]
-done
-done
-k[2]
time={$|/60}
-text $time,0,0,25,1,255
Thanks for sharing that @Iain. I still need to learn the gmic syntax but it looks like a fairly bruteforceish approach, going through all permutations of shifts and then picking the one with the lowest delta. Still have other stuff that needs to be done, but this will be on my āto investigateā list. Could end up being a cool party trick.
Iāve tried some things like braking the image into tiles and offsetting tiles against each other, then doing the above, but I have not got it to work as well as I would like.
Iām mostly interested in denoising of RAW images, so I would say both cases with a preference for pre-tonal-curve NR if it can be more effectiveā¦
Given that Iām 40, I would say not more than 20 yearsā¦
Seriously, whatever is needed to implement a good algorithmā¦ Iām not making any money out of the software, so I have no specific time constraints.