0

在 MATLAB 中使用 imresize 时,我使用了 bicubic 作为一种方法

这是代码。

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

它运作良好。

但我想知道我是否犯了错误并改变了方法

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

我这样做了。

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

如果我使用“bic”,我不会收到错误吗?

因为这行得通,我怀疑我的实验数据是正确的。

为什么运行正常?

谢谢你。

4

2 回答 2

3

正如@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')。

于 2018-05-09T10:23:25.723 回答
0

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

于 2018-05-09T08:37:43.553 回答