MATLAB,即使我在 imresize 中使用了错误的代码,但它会被执行

MATLAB, even if i use the wrong code in imresize, but it will be executed

我在 MATLAB 中使用 imresize 时使用了双三次作为方法

这是代码。

a = imresize (image, 1/3, 'bicubic');
b = imresize (a, 3, 'bicubic');

效果很好。

不过我在想是不是我写错了,改了方法

a = imresize (image, 1/3, 'bic');
b = imresize (a, 3, 'bic');

我做到了。

但是代码执行了,结果是一样的

如果我使用 'bic' 会不会出现错误?

因为这个有效,我怀疑我的实验数据是正确的。

为什么运行正常?

谢谢。

基于 matlab 文档 bicubic 是此函数的默认值。他们可能会检查传递的值是否是预定义值之一。如果不是这种情况,则应用双三次的默认值。

正如@AnderBiguri 所建议的那样,Mathworks 的某人以您可以输入方法开头的方式完成这项工作。如果你阅读imresize的代码,你可以在第445行(RS2017b)找到以下函数:

function tf = isMethodString(in)
% abbreviated for sake of clarity
tf = sum(strncmpi(in, valid_method_strings, numel(in));

如果第一个字符唯一地标识方法(并且不区分大小写),则它验证方法。所以 'b' 无效(因为你有 'bilinear' 和 'bicubic'),但是 'bic' 有效,所以 'n'(对于 'nearest') .