我在 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",我不会收到错误吗?
因为这有效,我怀疑我的实验数据是正确的。
为什么运行正常?
谢谢。
正如@AnderBiguri所建议的,Mathworks的某个人以这样一种方式完成这项工作,你可以输入方法的开头。如果您阅读了imresize
的代码,您可以在第 445 行 (RS2017b( 找到以下功能:
function tf = isMethodString(in)
% abbreviated for sake of clarity
tf = sum(strncmpi(in, valid_method_strings, numel(in));
如果第一个字符唯一标识方法(并且不区分大小写(,它将验证该方法。所以"b"是无效的(因为你有"双线性"和"双立方"(,但"bic"是有效的,所以"n"(对于"最近"(。
基于 matlab 文档bicubic
是此函数的默认值。他们可能会检查传递的值是否是预定义的值之一。如果不是这种情况,则应用默认值,即双立方。