因此,我正在使用一个名为cpselect的函数(图像处理工具箱),该函数基本上会返回图像中所需点的像素值(x,y)。像素值然后作为变量保存在工作区中。 所以我有两个问题:
1)我需要在功能中使用这些变量。我有几张图像,使用cpselect之后,在工作区中得到了fixedPoints,fixedPoints1,fixedPoints2等。
function [] = ControlPoints()
%function that reads images in directory and uses cpselect to each
imagefiles = dir('*.jpg');
nfiles = length(imagefiles);
for ii=1:nfiles
currentfilename = imagefiles(ii).name;
currentimage = imread(currentfilename);
cpselect(currentimage,currentimage);
pause;
end
a = fixedPoints1; % returns error(undefined variable)
end
是否可以在同一函数中使用这些变量?它们是在工作空间中创建的,而不是在函数本身中创建的,这就是为什么当我尝试使用它时会出错的原因。
2)找到一种使用方法后,出现了第二个问题。我得到的变量是fixedPoints,fixedPoints1,fixedPoints2等...我想将所有变量都放在一个单元格数组中,以在同一函数或另一函数中使用。我到底该怎么做?我发现动态创建这样的变量名很不好,但是考虑到这种情况,我认为我没有选择。
预先感谢
答案 0 :(得分:0)
使用the documentation中显示的最后一种语法可以解决这两个问题:
[selectedMovingPoints,selectedFixedPoints] = cpselect(currentimage,currentimage,'Wait',true)
返回的数组是p
x2个数字数组,其中每一行都是所选点之一。