Log in

View Full Version : Interesting Image Restoration App


Pookie
28th August 2006, 01:05
Stumbled Across this App from another post. Mods, please move this if it doesn't belong here.

Please forgive my ignorance, but I thought this app might be inspirational to some of the plugin developers out there.
Perhaps some of the source could serve as code for future Avisynth plugins.

Open BSD License Model - "We left the license quite open to any usage type. The software is available for friendly usage"

http://restoreinpaint.sourceforge.net/

I thought the upsizing algos were pretty good (warning, big)

Original (thanks, S..h ;)
http://fileserver2.jpghosting.com/images/tn_720psample0018yb_18136f96743884e7563ec73ecd1a12cd.jpg (http://fileserver2.jpghosting.com/images/720psample0018yb_18136f96743884e7563ec73ecd1a12cd.jpg)

Upresed x2
http://fileserver2.jpghosting.com/images/tn_upres-x2_1627a46e763a7d819db36415a3d452a4.png (http://fileserver2.jpghosting.com/images/upres-x2_1627a46e763a7d819db36415a3d452a4.png)

Half-resed back down to original dimensions
http://fileserver2.jpghosting.com/images/tn_2560-halfresed_89ff7af019fdbe73a2854ece59963d71.png (http://fileserver2.jpghosting.com/images/2560-halfresed_89ff7af019fdbe73a2854ece59963d71.png)

This incremental library uses new technologies. Some of them are very fast(using a large set of Linear Solvers), some are slow but with more restoration qualities(better edges,...). The technology is useful for learning purpose, explory purpose, research boosting, and application like general linear solvers, old painting restoration, image recovery for medical or every day purpose,...
MinGW with OpenGL/Glut/GLUI. Realtime restoration demo using MinGW with OpenPTC. Getting power of DirectX fast display.


* NEW FFT: DFT, recursive Radix2 FFT DIT, Radix2 and 4 FFT DIT/DIF, SplitRadix.
* NEW NonLinearSolver: Solvers, line seaches, objective function. Barzilai-Borwein(BB), Conjugate Gradients: Fletcher-Reeves CG, Polack-Ribiere CG, Dai-Yuan CG & HybridDY CG, QuasiNewton: LimitedBFGS,Newton-Raphson. Line-search:Armijo, Wolf, Secant, DennisSchnabel, nonmonotone
* LinearSolver: Steepest-Descent, Thomas, Barzilai-Borwein(BB), CBB, SSOR-BB, GMRES*(l,m)-BB, CG, SSOR-CG, GMRES*(l,m)-CG, CGi, Minres, Symmlq, CGS-LS, CG-NE, CG-NR, BiCG, CGS, Bcgstab, SSOR-Bicgstab, GMRES*(l,m)-Bicgstab, BiCgstab(2), QmrCgStab, QmrCgStab, CR, GCr(m), Gmres(m), MGCR(m), GmresR(l,m), working. Coming: QMR, Dominant Constant Tridiagonal/Toeplitz O(5N) and Pentadiagonal LDLt/LU fast solvers.
* Time based 2DSchemes: Splitted LOD, AFI, AOS, AMOS and ADI(with tests on Kim's ADI(2000) and unsplitted Backward Euler, Crank Nicolson working with linear solvers on any band matrices.
* Spatial discretisation: HeatFlow, Anisotropic and Variational restoration, TVInpainting spaces, WeberTV, TVnm, TVtrace,KimKangTV,..., developpers can build larger kernels.
* Diffusivity features: Support for Variational,Perona and Weickert diffusivity with Kim's gradient norm recalculation(2002)Central, Minslope, Minbiased, MaxSlope, MaxBiased.
* Fast Restoration: NEW Fixed Point Blomgren TVn1, Tnm, TVtrace combines all new features together = Tornado1 suitable for large time steps handling and supports limit testing at extreme conditions: large contrast and large lambda.
* NEW Fast Inpainting: combines anisotropic and variational restoration, a fast TV Inpainting supporting large timesteps is experimented and works well with all unsplitted 2D semi-implicit solvers.
* Image formats: 8bit grey and 24bit color for jpeg, bmp, TIFF. In version 1.1: PGM,PPM,PNM,PAM, including 16bit grey and 48 bit color TIFF and PGM/PPM (read/write)
* Color Space Enhancement: Gamma, Histogram equalisation. New in 1.1d: Kimmel Variational Grey/RGB/YIQ/HVC Retinex, Homomorphic filter, image to image color transfert. RGB, XYZ, YIQ, Yuv, LHS, HSV, HVC, HSI, LMS, Lab, Luv. Coming: RLab
* Restoration: more than 35 restorations using partial differential equations(explicit methods), alternative restorations Mean Shift, Barash bilateral filters, scharr coherence enhancement, Gilboa forward/backward diffusion, and complex diffusion.Planned complex shocks.

foxyshadis
28th August 2006, 04:03
I don't get it, the second is a point-resized doubling and the third is essentially identical to the first. They don't seem to have released anything in ages and their cvs tree is empty. =\

Hurricane Neddy
28th August 2006, 04:18
I don't get it, the second is a point-resized doubling and the third is essentially identical to the first.

Actually the third looks slightly less detailed to me than the first.

Pookie
28th August 2006, 05:49
It was an article by Avery on the VirtualDub boards that stated a good upsizing app should give you an almost identical looking file to the source when you've half resed the upsized target - hence...

As far as whether it was a point resize - I dunno. The Inpainter app has three different upscalers. I used the one entitled "Basic Scaling". I was impressed by the lower levels of aliasing.

If none of the above apps prove interesting, perhaps the links to the associated publications contain some useful info ?

http://www.math.tau.ac.il/~sochen/publications.html

Here's a Depth of Field Algo - Perhaps an application would be a depth of field plugin that could make DV look more like film.

http://www.iua.upf.es/~mbertalmio/dof/doffin00.pdf

Here's a link that discusses a fast method of finding edges and boundaries which might provide an even more accurate way to create edge masks, or perhaps a super-fast line darkener for cartoons.

http://math.berkeley.edu/~sethian/Movies/Movieartery.html

Addressing motion aliasing with Temporal Super Resolution:

http://www.wisdom.weizmann.ac.il/~vision/VideoAnalysis/Demos/SpaceTimeSR/SuperRes_demos.html

Wow, actually there's too much information out there on image and video processing. Was hoping to stir the synaptic pot if only from the perspective of an enthusiastic end user.. in other words- just trying to be helpful, but I'm too dumb to contribute code, hence the ignorance disclaimer in the first thread.:D I'll shut up now (puts foot in mouth)

DDogg
19th September 2006, 14:03
Here's a Depth of Field Algo - Perhaps an application would be a depth of field plugin that could make DV look more like film.

http://www.iua.upf.es/~mbertalmio/dof/doffin00.pdf Although the math is far to complex for me to understand, the pictures contained showing the artificially created depth of field are amazing. If the method described could work for DV, it would rock the video world. Heck, revolutionize would not be too strong of a word.

At the very least, it would be great to see 'our' brainiacs comment on the possibility.

Guest
19th September 2006, 14:34
The problem for DV is that you don't have the Z-buffer information.

Fizick
19th September 2006, 19:42
i know about restorepaint (older versions).
It is mostly for high-resolution images.
for standard video sizes all its methods are too blurry