P.S. Aren't I the one who started messing with Kaiser alpha values?

Code: Select all
convert -filter Lanczos2 -distort Resize
Code: Select all
convert logo: -gravity center -crop 80x80+0+0 -filter Gaussian -resize 800% show:
convert logo: -gravity center -crop 80x80+0+0 -filter Gaussian \
-define filter:sigma=.70710678 -resize 800% show:
NicolasRobidoux wrote:@Anthony: Thank you much for fixing this bug.
P.S. Aren't I the one who started messing with Kaiser alpha values?
NicolasRobidoux wrote:I'm not saying that the other filters are not good, but a quick look suggests that unsharpened Jinc-windowed Jinc 2 a.k.a.may be quite a good "light touch with just a bit of denoising/antialiasing/sharpening" downsampler for DSLR photographs. Definitely not "punch me in the face" sharp; more like a civilized gentleman.Code: Select all
convert -filter Lanczos2 -distort Resize
(Yes, I know it's a bit on the blurry side for no-op. I'm talking about linear light downsampling, here.)
Code: Select all
)cl a
digits 100
R1 := 3.831705970207512315614435886308160766564545274287801928762298989918839309519011470214112874757423127
r1 := R1 / %pi
R2 := 7.0155866698156187535370499814765247432763115029113138960553778269854960155020186630727149301794664578066071840984767118820251703769720326548673375642560309232023970190386543841800591275430452193373925
r2 := R2 / %pi
jinc x == besselJ(1,%pi*x)/x
sinc x == besselJ(1,x*(R1/r2))/x
l x == if (x<r2) then ( sinc(x) * jinc(x) ) else 0.
plus x == max(l x,0)
minus x == -min(l x, 0)
f r == [ r, sqrt(1.+1)*r, 2*r, sqrt(1.+4)*r, sqrt(4.+4)*r, 3*r, sqrt(9.+1.)*r, sqrt(9.+4)*r, 4*r, sqrt(16.+1)*r, sqrt(9.+9)*r, sqrt(16.+4)*r, 5*r ]
z := l 1.e-128
gplus(r) == _
( _
4 * _
( plus((f(r)).1) _
+ plus((f(r)).2) _
+ plus((f(r)).3) _
+ plus((f(r)).5) _
+ plus((f(r)).6) _
+ plus((f(r)).9) _
+ plus((f(r)).11) _
+ plus((f(r)).13) _
+ 2 * _
( plus((f(r)).4) _
+ plus((f(r)).7) _
+ plus((f(r)).8) _
+ plus((f(r)).10) _
+ plus((f(r)).12) ) ) _
) / _
( _
z + _
4 * _
( l((f(r)).1) _
+ l((f(r)).2) _
+ l((f(r)).3) _
+ l((f(r)).5) _
+ l((f(r)).6) _
+ l((f(r)).9) _
+ l((f(r)).11) _
+ l((f(r)).13) _
+ 2 * _
( l((f(r)).4) _
+ l((f(r)).7) _
+ l((f(r)).8) _
+ l((f(r)).10) _
+ l((f(r)).12) ) ) )
gminus(r) == _
( _
4 * _
( minus((f(r)).1) _
+ minus((f(r)).2) _
+ minus((f(r)).3) _
+ minus((f(r)).5) _
+ minus((f(r)).6) _
+ minus((f(r)).9) _
+ minus((f(r)).11) _
+ minus((f(r)).13) _
+ 2 * _
( minus((f(r)).4) _
+ minus((f(r)).7) _
+ minus((f(r)).8) _
+ minus((f(r)).10) _
+ minus((f(r)).12) ) ) _
) / _
( _
z + _
4 * _
( l((f(r)).1) _
+ l((f(r)).2) _
+ l((f(r)).3) _
+ l((f(r)).5) _
+ l((f(r)).6) _
+ l((f(r)).9) _
+ l((f(r)).11) _
+ l((f(r)).13) _
+ 2 * _
( l((f(r)).4) _
+ l((f(r)).7) _
+ l((f(r)).8) _
+ l((f(r)).10) _
+ l((f(r)).12) ) ) )
g x == gplus x - gminus x
[ g(1.12579115877571800+i*.000000000000000001) for i in 3..31 ]
-- Residual for the one with least possible deviation:
g(1.125791158775718017)
-- Actual blur value:
1/1.125791158775718017
Code: Select all
convert INPUT.IMG -filter Lanczos2 \
-define filter:blur=0.88826421508540347 \
-distort Resize PERCENT% OUTPUT.IMG
convert INPUT.IMG -filter Lanczos \
-define filter:blur=0.88549061701764 \
-distort Resize PERCENT% OUTPUT.IMG
convert INPUT.IMG -filter Lanczos \
-define filter:blur=0.88451002338585141 \
-define filter:lobes=4 -distort Resize PERCENT% OUTPUT.IMG
When have I ever used Lagrange with a million lobes? All I did was ensure their were no limit to the order, just map support to lagrange order (as they were related) so you have an easy way to set the order. I suppose I could have had a 'filter:order' but then the specialised filter:sigma (for gaussian) and filter:alpha (for kaiser) was added later.NicolasRobidoux wrote:P.S.3 I used to think that Anthony was out of his mind to use Lagrange with a million lobes. Now, I'm starting to see that sometimes lots of lobes pay off?
I hear you!P.S.6 Too many filters, too little time.
I look forward to it too!P.S.10 Now it's going to be really interesting to see how the quantitative errors that my student Adam Turcotte is computing line up
False accusations. (Apologies.)anthony wrote:...
When have I ever used Lagrange with a million lobes?
...