Не уверен, где мой код работает неправильно при использовании Improfile в MATLAB
В настоящее время я работаю над кодом, который берет стек изображений и вычисляет профили интенсивности этих стеков, чтобы сравнить их с другим стеком изображений.
Вот мой код:
for i = 1:c_frames
d_Img(:,:) = d_I(i,:,:);
c_Img(:,:) = c_I(i,:,:);
c_d = improfile(d_Img);
c_c = improfile(c_Img);
end
Это набор ошибок (все они относятся к одной ошибке, конечно), которые я получаю:
Когда я whos
d_I и c_I, вот что я получаю:
Итак, что именно означает ошибка, я попытался просмотреть документацию, но я не был уверен, что N
означало.
Спасибо за ваши ответы и, пожалуйста, не стесняйтесь задавать любые вопросы, которые позволят уточнить вопрос.
1 ответ
Конечно, это загадочное сообщение об ошибке, я думаю, что набор входных данных, которые вы предоставляете improfile
функция не завершена. Если вы ясно посмотрите на https://www.mathworks.com/help/images/ref/improfile.html, вы увидите, что improfile(n)
Синтаксис нуждается в скаляре 'n' (а не в изображении), который представляет собой количество точек для включения в профиль.
Нет синтаксиса, позволяющего передавать только изображение. Вам также нужно будет включить координаты x и y конечных точек отрезков, для которых вы хотите создать профиль. Например,
load mri
D = squeeze(D)
dSlice = D(:,:,16);
x = [19 35 65 77];
y = [96 45 27 33];
improfile(dSlice, x, y) % x and y are required inputs.
работает. Что касается сообщения об ошибке, если вам действительно интересно, попробуйте
edit improfile
Я полагаю, что N обозначает количество заданных вами точек, то, как вы это называете, душит эту логику.