在 MATLAB 中使用 improfile 时不确定我的代码哪里出了问题

Not sure where my code is going wrong when using improfile in 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 是什么意思。

感谢您的回答,请随时提出任何问题,以进一步澄清问题。

虽然这是一条神秘的错误消息,但我认为您提供给 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 代表您指定的点数,您的称呼方式阻碍了这个逻辑。