作业要求:模拟Matlab的imresize()写一个你自己的imresize()函数,至少应实现‘nearest’和‘bilinear’两种方法。
首先理论方面主要参考了一下两个网址
https://blog.youkuaiyun.com/Bryan_QAQ/article/details/78774442
https://blog.youkuaiyun.com/ccblogger/article/details/72918354
这两个博客里面写的十分详细,也不用我多叙述了,下面简单贴一下Matlab的代码。(只能读入jpg和tif格式文件,不知道怎么实现Matlab那样什么都可以读入)。
写的很笨,非常不熟悉Matlab,有更好的方法请指出。
function [Img] = My_imresize(filename, rate, method)
%My_imresize为对Matlab中的imresize的简单模拟,实现了nearest和bilinear两种method
% filename为文件路径,rate为图像缩放比例,method为插值方式,此处只实现最近邻插值和双线性插值法。
if strcmp('jpg',filename((length(filename)-2):(length(filename))))%检查为jpg或者tif
Img_old = imread(filename);
else
[X,map] = imread(filename);
Img_old = ind2rgb(X,map);
end
% imsho