View Full Version : Vector-valued regularization PDE filter ?
easyfab
19th August 2004, 10:11
I found this link today :
http://www-sop.inria.fr/odyssee/research/tschumperle-deriche:02d/appliu/
It is really interesting. And I think it could be interesting to have a filter base on it. The source are available.
I don't know if it is possible to include for video filter and if it would be very efficient ?
What do you think about this ?
tritical
19th August 2004, 13:28
Definitely interesting... it wouldn't be hard to make a filter that just applies their equation to every pixel for a given number of iterations. However, it would not be very fast as it requires quite a bit of calculation on a per pixel basis. For each pixel you would have to compute the local first order derivatives to get the 2x2 structure tensor, then compute the eigenvalues and eigenvectors, then do some more steps to compute the tensor field T which involves sqrt(), pow(), and a few multiplications so thats gonna be rather slow :D , after which you have to compute the local second order derivatives and then finally you have everything you need to calculate the update for the pixel. That's leaving out the smoothing step they mention. More then one or two interations and it would definitely be going quite slow if not before. The results on their website are impressive though.
Mug Funky
20th August 2004, 14:03
it looks rather like photoshop 7's anisotropic diffuse function. probably runs the same speed too.
the inpainting looks interesting though. would take a lot of the manual labour out of image manipulation.
tritical
24th August 2004, 04:22
It is definitely related to anisotropic diffusion. In fact, a lot of the paper discusses the general relationship between many of the pde filtering techniques and arrives at a general equation trace(AijHi) where Aij is a 2x2 matrix containing local geometry info (diffusion tensors) and Hi is the hessian matrix. Though the links between many of the pde related filtering techniques have been looked at before. In the end the pde they develop is suppose to smooth isotropically in large 'related' regions and anisotropically around edges.
Since I thought this looked interesting, I've tried to make a working filter real quick, but I am apparently screwing something up cause I can't get it to work correctly. It smoothes the large regions ok but gives very strange/bad results around vertical edges. The calculation of the eigenvalues, eigenvectors, and the weighting functions is slow... it runs about 0.5fps with only 4 iterations on my 2.4Ghz p4 and I am skipping both smoothing steps, which is probably why I'm not getting very good results. Anistropic diffusion can actually be done significantly faster, since almost all of the computationally intensive parts can be implemented by LUT (for simple Perona and Malik style anisotropic diffusion anyways). Of course if your going to run lots of iterations it will be slow.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.