Matlab 提高灰度图像的分辨率

Matlab 提高灰度图像的分辨率,matlab,resize,image-manipulation,Matlab,Resize,Image Manipulation,我有一个灰度图像,需要提高它的分辨率。如何在MATLAB中实现这一点?例如,它主要是通过乘以图像的尺寸来实现的吗?您需要执行插值。有很多方法可以做到这一点。使用(例如 IGGOUT=imResiSe(IMG,Stand,方法);),或者如果没有图像处理工具箱,请考虑以下代码: function imres = resizeim(I,outsize,interpalg) if nargin<3 || isempty(interpalg), interpalg='cubic'; en

我有一个灰度图像,需要提高它的分辨率。如何在MATLAB中实现这一点?例如,它主要是通过乘以图像的尺寸来实现的吗?

您需要执行插值。有很多方法可以做到这一点。使用(例如<代码> IGGOUT=imResiSe(IMG,Stand,方法);),或者如果没有图像处理工具箱,请考虑以下代码:

function imres = resizeim(I,outsize,interpalg)

if nargin<3 || isempty(interpalg),
    interpalg='cubic';
end

rows=outsize(1);
cols=outsize(2);

vscale = size(I,1) / rows;
hscale = size(I,2) / cols;

imgClass = class(I);
imres = interp2(double(I), (1:cols)*hscale + 0.5 * (1 - hscale), ...
                   (1:rows)'*vscale + 0.5 * (1 - vscale), ...
                   interpalg);
imres = cast(imres,imgClass);
function imres=resizeim(I、超大、interpalg)

如果nargin,您还可以通过对图像进行傅里叶变换、零填充、逆傅里叶变换并获取绝对值来执行sinc插值

im_rz = abs(ifft2(padarray(fft2(im),[row_pad, col_pad]))) 
你可以“幻觉”高分辨率的细节。例如,参见Glasner等人的ICCV 2009

可以找到该算法的实现