Image Matlab图像翻译:索引超过矩阵维数
我一直在尝试通过在关键帧上指定一个公共位置并基于这些点进行插值来在整个图像序列中转换图像。看起来很简单,但我一直都有一个错误,即使这些图像看起来翻译得很好。这很烦人,因为它可以工作,但我不能在我的代码中添加更多内容,因为错误是“Image Matlab图像翻译:索引超过矩阵维数,image,matlab,matrix,indexing,translate,Image,Matlab,Matrix,Indexing,Translate,我一直在尝试通过在关键帧上指定一个公共位置并基于这些点进行插值来在整个图像序列中转换图像。看起来很简单,但我一直都有一个错误,即使这些图像看起来翻译得很好。这很烦人,因为它可以工作,但我不能在我的代码中添加更多内容,因为错误是“?”索引超过了矩阵维数。”在这行上,k=pos{j-1}(1):pos{j}(1),我似乎不明白为什么。我有R2011a 32位。谢谢你的帮助!这是我的密码: % // numkeyframes=input('Enter the number of key frames'
?”索引超过了矩阵维数。
”在这行上,k=pos{j-1}(1):pos{j}(1),我似乎不明白为什么。我有R2011a 32位。谢谢你的帮助!这是我的密码:
% // numkeyframes=input('Enter the number of key frames');
pos=cell(1,3);
for i=1:numkeyframes
pos{i}=input('Enter frame, x position, and y position in format "[f x y]"');
end
D=dir('*.bmp');
imcell=cell(1,numel(D));
for i=1:numel(D)
imcell{i}=imread(D(i).name,'bmp');
end
for j=2:pos{numkeyframes}(1)
for k=pos{j-1}(1):pos{j}(1)
xdisp=round((pos{1}(2)-pos{j}(2))*(k-pos{j-1}(1))/(pos{j}(1)-pos{j-1}(1)));
ydisp=round((pos{1}(3)-pos{j}(3))*(k-pos{j-1}(1))/(pos{j}(1)-pos{j-1}(1)));
structelem=translate(strel(1),[xdisp,ydisp]);
imtrans{k}=imdilate(imcell{k},structelem);
end
end
似乎您想要j=2:numel(pos)的
,但问题似乎取决于输入。dbstop if error
,并检查j
的值是多少。将其与pos
的大小进行比较。