У меня небольшой вопрос, я создал функции для масштабирования, NNi, bilenear для отображения картинки, а именно:

Zoom.m

function [out]= zoom(n,factor)
-----
---
----
end

NNI.m

function [out]= NNI(n,factor)
-----
---
----
end

Bilenear.m

function [out]= Bilenear(n,factor)
-----
---
----
end

Что я пытаюсь: main.m

function [out]= answer(n, factor)
clc
function [out]= zoom(n,factor)
function [out]= NNI(n,factor)
function [out]= Bilenear(n,factor)
end

Я хочу, чтобы эта основная функция отображала увеличенное изображение, nni pic и bilenear отдельно

0
user3508182 25 Апр 2014 в 13:15

2 ответа

Лучший ответ

Чтобы опираться на ответ Шорша, поскольку вы упомянули, что хотите, чтобы ваша основная функция отображала эти изображения, вы можете попробовать что-то вроде следующего:

function [out] = compare_interpolations(n,factor)
clc
zoomed = zoom(n,factor);
nearest= NNI(n,factor);
bilinterp=Bilinear(n,factor);

figure;
subplot(1,3,1);imshow(zoomed);title('Zoomed');
subplot(1,3,2);imshow(nearest);title('Nearest Neighbor');
subplot(1,3,3);imshow(bilinterp);title('Bilinear');


end
2
Raab70 25 Апр 2014 в 15:16

Не уверен, что понимаю ваш вопрос, но вы не вызываете функции с помощью команды function.
Может быть, попробовать это в main.m:

function [out]= answer(n, factor)

clc
[out1]= zoom(n,factor)
[out2]= NNI(n,factor)
[out3]= Bilenear(n,factor)

out = NaN;

end

Убедитесь, что другие .m - файлы сохранены в том же каталоге или в вашем Matlab-search-path (Matlab должен найти эти функции).
Также убедитесь, что answer в main.m действительно предоставляет возвращаемый аргумент out. В этом примере я установил для него значение NaN, но вы также можете вернуть три out из других функций:

function [out1, out2, out3] = answer(n, factor)
1
BenMorel 24 Июн 2014 в 16:54