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



我在 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是此函数的默认值。他们可能会检查传递的值是否是预定义的值之一。如果不是这种情况,则应用默认值,即双立方。

相关内容

  • 没有找到相关文章

最新更新