Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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
如何在MATLAB中叠加一系列图像_Matlab_Matrix_3d_Imaging - Fatal编程技术网

如何在MATLAB中叠加一系列图像

如何在MATLAB中叠加一系列图像,matlab,matrix,3d,imaging,Matlab,Matrix,3d,Imaging,这是我试图运行的代码,但问题是我有2000张图片,只能显示一张 我认为您真正想要的是将图像存储为图像堆栈。 这将允许您在中查看图像堆栈,例如,并在其中滚动等 我会将它们存储为一个tiff文件,并执行类似操作(请注意,所有图像的大小必须相同): numOfImages=2000; 输出文件名='imgstack.tif'; 对于k=1:numOfImages 加载的_image=imread(sprintf('frame-%d.png',k)); imwrite(加载的图像,输出文件名,'Writ

这是我试图运行的代码,但问题是我有2000张图片,只能显示一张

我认为您真正想要的是将图像存储为图像堆栈。 这将允许您在中查看图像堆栈,例如,并在其中滚动等

我会将它们存储为一个tiff文件,并执行类似操作(请注意,所有图像的大小必须相同):

numOfImages=2000;
输出文件名='imgstack.tif';
对于k=1:numOfImages
加载的_image=imread(sprintf('frame-%d.png',k));
imwrite(加载的图像,输出文件名,'WriteMode',append','Compression','none');
结束

问题在于可视化。您可以使用蒙太奇功能查看MxNxP堆栈或单元格阵列,其中每个单元格表示一幅图像

在上面的代码中

如果您希望将数据可视化为卷(您在最近的注释中已指出),则IPT中的volshow或volumeViewer将执行此操作

figure, montage(images)

其中Imatrix是要在其上执行体积可视化的MxNxP阵列。

sprintf('frame-1065.png',i)
始终给出相同的结果,而不管
i
的值如何。你所说的叠加图像是什么意思?我有一组从1到2456的图像,我需要通过在每个图像上叠加来创建一个3D绘图。因此,我开始创建循环,但它似乎不起作用。你的意思是,你在寻找一个合成图像?我试图通过将一组图像叠加在一起,从中获取一个体积
imshow
不显示体积图像,但MATLAB中有其他工具可用于此。此外,如果要处理体积图像,我建议您使用MATLAB工具箱。使用DIPimage,您可以执行以下操作:
readtimeseries('frame-*.png')
读取所有图像,将它们堆叠到3D图像中并显示。出现问题,我想用这些图像创建一个卷,而不是多帧图像数组。请参阅我的更新。将来,我建议在你的OP中包含这样的信息,以便在StackOverflow上获得最佳效果。你的建议太棒了!只发布你的代码不允许我循环浏览从1到1256的图片…我应该怎么做?@VegaOmega是的,是的。它从
1
循环到
numOfImages
。设置变量
numOfImages=1256
,您就可以上路了。您可能需要调整文件名的大小,但我是从您的问题中选择的。亲爱的@kkuilla,我尝试过这种方法,但正如您所看到的,我遇到了这个错误。@VegaOmega修复了这个问题。。抱歉…太棒了。非常感谢你,这是你的一部分。
figure, montage(images)
volumeViewer(Imatrix)
figure, volshow(Imatrix)