请问Julia有没有什么库可以使用双线性插值和三次卷积插值这些函数。我在Matlab里可以用imresize这个函数来达到图像的缩放。
imresize(img, sz) -> imgr imresize(img, inds) -> imgr imresize(img; ratio) -> imgr
Change
img
to be of sizesz
(or to have indicesinds
). Ifratio
is used, then
sz = ceil(Int, size(img).*ratio)
. This interpolates the values at sub-pixel locations.
If you are shrinking the image, you risk aliasing unless you low-pass filterimg
first.
julia> img = testimage("lena_gray_256") # 256*256
julia> imresize(img, 128, 128) # 128*128
julia> imresize(img, 1:128, 1:128) # 128*128
julia> imresize(img, (128, 128)) # 128*128
julia> imresize(img, (1:128, 1:128)) # 128*128
julia> imresize(img, (1:128, )) # 128*256
julia> imresize(img, 128) # 128*256
julia> imresize(img, ratio = 0.5) # 128*128
σ = map((o,n)->0.75*o/n, size(img), sz)
kern = KernelFactors.gaussian(σ) # from ImageFiltering
imgr = imresize(imfilter(img, kern, NA()), sz)
不过没看见调插值方法的地方。
可以使用一些现成的package,比如 Dierckx, GridInterpolations,具体可以看Help。