Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 将3D矩阵拟合到相同的灰度值_Matlab_Image Processing_Histogram_Grayscale_Data Fitting - Fatal编程技术网

Matlab 将3D矩阵拟合到相同的灰度值

Matlab 将3D矩阵拟合到相同的灰度值,matlab,image-processing,histogram,grayscale,data-fitting,Matlab,Image Processing,Histogram,Grayscale,Data Fitting,我正在尝试拟合两个数据集。其中包含使用两种不同测量设备(x射线与µct)测量同一物体的结果 我确实重建了图像数据,并适应了堆栈的方向和偏移。它看起来像这样(从大约500个图像的堆栈中选择一个图像): 本文的重点是比较x射线数据上的几种去噪算法(左)。假设来自µCT(右)的数据接近真实信号,没有任何噪声。因此,我想将每种算法的去噪x射线数据与µCT的“纯”信号进行比较,看看哪种算法产生的均方根误差最小。因此,我需要以某种方式将左侧部分的灰度值拟合到右侧部分的灰度值,而不需要过多地处理噪波 右侧的

我正在尝试拟合两个数据集。其中包含使用两种不同测量设备(x射线与µct)测量同一物体的结果

我确实重建了图像数据,并适应了堆栈的方向和偏移。它看起来像这样(从大约500个图像的堆栈中选择一个图像):

本文的重点是比较x射线数据上的几种去噪算法(左)。假设来自µCT(右)的数据接近真实信号,没有任何噪声。因此,我想将每种算法的去噪x射线数据与µCT的“纯”信号进行比较,看看哪种算法产生的均方根误差最小。因此,我需要以某种方式将左侧部分的灰度值拟合到右侧部分的灰度值,而不需要过多地处理噪波

右侧的灰度值在0到100之间,而x射线数据的范围在4000到30000之间。“泡沫”大约在8000到11000之间。(这些不是真实的气泡,而是3D打印机上有孔的人造幻影)

我试图做的是(某种程度上)带通这些气泡,并将它们映射到~100,同时将其他所有值移到4(这是µCT数据上的背景值)

这就是代码:

zwst = zwsr;
zwsr(zwst<=8000)=round(zwst(zwst<=6500)*4/8000);
zwsr(zwst<=11000 & zwst>8000)= round(zwst(zwst<=11000 & zwst>8000)/9500*100);
zwsr(zwst>11000)=round(zwst(zwst>11000)*4/30000);
zwst=zwsr;
zwsr(zwst11000)*4/30000;
结果如下所示:

有些气泡看起来失真了,背景中的噪音部分完全消失了。有没有更好的方法来拟合这些灰度值,同时保持噪声部分


编辑:澄清问题:假定µCT数据无噪声,而x射线数据有噪声。换句话说,
µCT=信号
,而
x射线=信号+噪声
。为了量化我的去噪方法的质量,我想计算
x射线-µCT=noise

太长了,我相信这是一个合理的答案:

图像处理/信号处理有一个巨大的子领域称为图像融合。甚至有一个使用小波()的特定Matlab库

图像融合背后的思想是:给定两幅相同但分辨率/数据非常不同的图像,我们如何创建一幅包含这两种信息的图像

“手工”缝合两幅图像通常不会产生很好的效果,因此有大量的技术可以从数学上进行。小波在这里很常见

通常,这种技术广泛应用于医学成像中,因为(就像在您的案例中一样)不同的成像技术提供不同的信息,医生希望将所有这些技术结合在一起:

示例(顶行:粘贴在一起的图像,底行:图像融合技术)

看看一些论文,一些matlab教程,也许你会得到易于使用的matlab代码,而不需要任何高级编程


祝你好运

谢谢你的建议。我确实从Matlab的小波工具箱中查看了“wfusimg”。不幸的是,这似乎并不能解决我的问题。这种图像融合方法将两幅图像中的数据合并成一幅新图像,这不是我想要的。事实上,除了适当地缩放灰度值外,x射线的数据不能被任何改变。目标是缩放x射线数据,使x射线和µCT的信号电平(接近)相等,以便保留噪声。我编辑了这篇文章来澄清这一点。@Dominic我明白了。但是请注意:小波在去除噪声方面非常出色。谢谢你的提示,我的去噪方法都是基于小波系数操作的。;-)好东西。