加快卷积和3 d supersampling二进制矩阵

5 Ansichten(30天)的
埃Gandola
埃Gandola 3月是1。2017年
Beantwortet: 埃Gandola 我10年3月。2017年
喂!由于提前averybody。
我有一个3 d矩阵由共焦显微镜的图像具有相同的分辨率x、y轴和z轴大约1/7的决议。执行supersampling z轴上我写的这段代码执行与高斯函数卷积在z轴,并为每个z比uppersampling向量。
函数[matrixZ, Zplanes] = denoising3Z(矩阵、飞机);
x = (1 1 1);
h = @ (x) gaussmf (x, [4,0]);
Zplanes =飞机* 7;
[r、c] =大小(矩阵{1 1});
matrixZ = 0 (r、c、Zplanes);
i = 1: r
j = 1: c
vectorZ = 0 (1,6);
z = 1:飞机
vectorZ矩阵(z) = {1, z} (i, j);
结束
vectorCZ(1) =过滤器(h (x), 2, vectorZ (1:));
V2 = imresize (vectorCZ [1 Zplanes],双线性的);
matrixZ (i, j) = V2 (1:);
结束
结束
结束
它工作得很好但它必须重复这些操作600万Z的向量图像和整个操作需要很长时间。我可以加快这一进程如何?可以创建一个过滤器体积和家庭的矩阵体积只有一个通过?可能应该更加快速。谢谢。

Akzeptierte Antwort

埃Gandola
埃Gandola 我10年3月。2017年
谢谢迪帕克,我发现这真的有用的解决方案
函数[matrixZ, Zplanes] = denoising3D(矩阵、飞机);
Zplanes =飞机* 7;
B = imgaussfilt3(矩阵);
[r、c、z] =大小(B);
matrixZ = 0 (r、c、Zplanes);
i = 1: r
img (:,) = B(我::);
imgZ = imresize (img, [c Zplanes]);
matrixZ(我::)= imgZ;
结束
结束
imgaussfilt3是一个新的体积函数实现图像处理工具箱的最后版本,辉煌!及rescalig我威胁使用imresize片的数量作为一个群体。用这种方式我减少了计算时间为100次

Weitere Antworten (1)

迪帕克Bhatia
迪帕克Bhatia 我3月3。2017年
在嵌套循环结构,我建议考虑 向量化 在MATLAB中它可能减少代码的执行时间。

Kategorien

找到更多的在生物医学成像帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的