Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation


1 Follower

About MichaelVinther

  • Birthday 02/14/1978

Profile Information

  • Gender
  • Location

Contact Methods

  • Website URL

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I've updated the download link. Also posted a new version with a small bugfix: https://www.fosshub.com/Image-Analyzer.html?dwl=LaplacianPyramidFilterPDN1.1.2.zip
  2. This is a noise reduction filter for improving photos taken at high ISO values. It is based on a neural network which was trained on a number of high ISO images from two different Canon cameras (because that is what I had available) but it seem to generalize well on photos from other cameras. It works quite well for removing noise and recovering details in my experiments so far. Unfortunately it is really slow running on the CPU so I recommend trying it out on a smaller crop of the full image. It is possible to make it run much faster on a Cuda capable Nvidia GPU but it can be a bit
  3. This is a noise reduction filter for e.g. improving photos taken at high ISO values. It works by averaging similar texture patches to reduce noise and at the same time preserve edges and details. The plugin contains two filters available from the Effects | Noise menu. The Local Stats Denoising which is probably the most powerful but also a bit harder to setup and the Adaptive Noise Reduction which is an older version but easier to use. Download version 2.0.0 (2019-08-30) https://www.fosshub.com/Image-Analyzer.html?dwl=LocalStatsDenoisingFilterPDN2.0.0.zip Unzip th
  4. Updated to version 1.1.0 with speed optimizations and a brightness slider added.
  5. This plugin has been replaced by my Laplacian pyramid filter effect plugin - http://forums.getpaint.net/index.php?/topic/24563-laplacian-pyramid-filter-effect-plugin/- which has more features and produces much better quality,
  6. I tried to implement the optimizations they describe in this paper, but unfortunately it didn't give much compared to my existing implementation. For some parameter values (with Detail handling=1 (alpha in the paper)) it is faster (perhaps 2x) but for other values it actually takes longer to achieve the same quality. I've uploaded the plugin with a new version that uses the new algorithm when it makes sense.
  7. Thanks for the hint, I will get this paper. Just one more example (photo from Mostar, Bosnia-Herzegovina, © Michael Vinther 2015):
  8. I have placed the previous version of the plugin which should be compatible with older versions of PDN here: LaplacianPyramidFilter1.0.0.1.zip Note that it is somewhat slower than the latest version.
  9. Well, this is the post that gave me idea to use ReadOnlyBoundToNameValuesRule, but unfortunately it doesn't seem to be able to do what I need.
  10. Thanks for the code. I was hoping to be able to use PDN's standard progress bar but since that is not possible I'll use your solution. By the way, I found that it looks better if the progress form does not take focus and cause PDN do be displayed as inactive. That can be achieved by making the form like this: class ProgressForm : Form { protected override bool ShowWithoutActivation { get { return true; } } } ... using (Form form = new ProgressForm())
  11. Is it in any was possible to control the progress bar or make your own in a PropertyBasedEffect? I have an effect where I need to do some time consuming pre-processing before I can deliver the first pixel but after that the rest can be delivered in no time. This means that the default progress bar based on the calls to OnRender will stall at 0% for some a long time and then immediately go to 100% which is not very useful. If this is not possible then I would suggest that if the effect sets EffectFlags.SingleRenderCall then PDN would just show the standard indeterminate progress bar whi
  12. Hi I have three double properties and I want one of them to be disabled if both the two others have the value 1.0. My best guess was to do something like this in OnCreatePropertyCollection() List<PropertyCollectionRule> propRules = new List<PropertyCollectionRule>(); propRules.Add(new ReadOnlyBoundToNameValuesRule(PropertyNames.Threshold, false, TupleStruct<object, object>(PropertyNames.Alpha, 1.0), TupleStruct<object, object>(PropertyNames.Beta, 1.0))); but that has causes Threshold to be disabled if any of the others have the value 1.0, not only if both.
  13. I have just updated the download link with a new version that is much faster. .. and another tone mapping example (photo from The Cisterns below Copenhagen, © Michael Vinther 2014):
  14. Basically it's all in the paper referenced in the first post.. The algorithm is fairly complex to explain so that would be the best reference.
  • Create New...