Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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 - Fatal编程技术网

Image MATLAB中关于尺寸不匹配的错误

Image MATLAB中关于尺寸不匹配的错误,image,matlab,Image,Matlab,实际上,我正在尝试在以下网站上实现代码,但这只适用于给定的两个图像具有相同维度的情况,我想使此代码在一个图像具有某些维度而另一个图像具有某些其他维度的情况下工作,如果我使用当前代码执行此操作,则会出现错误 ??? Sub scripted assignment dimension mismatch. Error in ==> example2 at 27 第27行: I(:,1:size(I1,2),:)=I1; I(:,size(I1,2)+1:size(I1,2)+size(I2,2

实际上,我正在尝试在以下网站上实现代码,但这只适用于给定的两个图像具有相同维度的情况,我想使此代码在一个图像具有某些维度而另一个图像具有某些其他维度的情况下工作,如果我使用当前代码执行此操作,则会出现错误

??? Sub scripted assignment dimension mismatch. Error in ==> example2 at 27
第27行:

I(:,1:size(I1,2),:)=I1; I(:,size(I1,2)+1:size(I1,2)+size(I2,2),:)=I2; 

你能帮我解决这个问题吗

您可以尝试用零填充较小的图像,使其具有与较大图像相同的尺寸。比如说

%Start with rows:    
if size(I1,1) > size(I2,1) %I1 has more rows so pad I2
        pad = zeros (size(I1,1) - size(I2,1), size(I2,2));
        I2 = [I2 ; pad]; %Append the rows of zeros to the bottom of I2
else %I2 has more rows so pad I1
        pad = zeros (size(I2,1) - size(I1,1), size(I1,2));
        I1 = [I1 ; pad]; %Append the rows of zeros to the bottom of I1

%Pad the columns    
if size(I1,2) > size(I2,2) %I1 has more rows so pad I2
        pad = zeros (size(I2,1), size(I1,2) - size(I2,2));
        I2 = [I2 , pad]; %Append the columns of zeros to the left of I2
else %I2 has more rows so pad I1
        pad = zeros (size(I1,1), size(I2,2) - size(I1,2));
        I1 = [I1 , pad]; %Append the columns of zeros to the left of I1
我还没有测试过,所以你可能需要稍微修改一下以获得完美的维度,比如大小(I2,2)-大小(I1,2)+1而不是大小(I2,2)-大小(I1,2),诸如此类的东西


但是你需要首先弄清楚你想做什么的逻辑。在应用程序中,用零填充可能没有意义。此外,我的代码也会在底部和左侧填充,但您可能希望一直填充,以便您的图像位于新图像的中心。

+1以获得良好的解释。另一种选择是将较大的图像裁剪为较小的图像。是的,裁剪是一种可能性,但由于这是一种信息丢失,所以似乎不太可能。但是,还有其他选项,如填充,但不使用零。可能是在边缘反射图像或其他形式的外推。但它完全是上下文关联的。有了图像处理工具箱,您可以使用
padarray