MATLAB, даже если я использую неправильный код в imresize, но он будет выполнен - PullRequest
0 голосов
/ 09 мая 2018

Я использовал бикубический как метод при использовании imresize в MATLAB

Это код.

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

Хорошо работает.

Но мне было интересно, если я сделал ошибку и изменил метод

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

Я сделал это.

Но код выполняется и результат тот же.

Не получаю ли я сообщение об ошибке, если использую 'bic'?

Поскольку это сработало, я подозревал, что данные моего эксперимента верны.

Почему он работает нормально?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Как подсказывает @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» (для «ближайшего»).

0 голосов
/ 09 мая 2018

На основе matlab doc bicubic является значением по умолчанию для этой функции. Возможно, они проверяют, является ли переданное значение одним из предопределенных значений. Если это не так, применяется значение по умолчанию, которое является бикубическим.

...