matlab修改图像分辨率_matlab – 增加灰度图像的分辨率

您需要执行插值.有很多方法可以做到这一点.使用

imresize(例如imgOut = imresize(img,scale,method);),或者如果您没有图像处理工具箱,请考虑以下代码:

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);

注意:这是一个艰难的开始.您需要执行预过滤或其他转换.此外,此示例仅支持2D(灰度)图像.对于RGB,将其调整为处理每个颜色平面,或者简单地处理循环中的每个平面.再次,这只是一个例子.

除了边缘处理之外,这给出了与关闭抗锯齿时相关的相同结果(即,imresize(…,’Antialiasing’,false)).

关于边缘处理,有关extrapval参数的信息,请参阅interp2的文档.代码变得丑陋,但你可以修补插值点(interp2输入)中的min / max元素以简单地映射到边缘,或者你可以使用NaN作为extrapval,并使用后期处理imres来替换NaNs请注意,简单地在诸如linspace(1,size(I,1),rows)之类的点处进行插值将不会给出预期的比例变化.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值