Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image Matlab图像翻译:索引超过矩阵维数_Image_Matlab_Matrix_Indexing_Translate - Fatal编程技术网

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
的大小进行比较。