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 非局部中值滤波器-输入参数类型为';双倍';_Matlab_Image Processing_Filtering - Fatal编程技术网

Matlab 非局部中值滤波器-输入参数类型为';双倍';

Matlab 非局部中值滤波器-输入参数类型为';双倍';,matlab,image-processing,filtering,Matlab,Image Processing,Filtering,我正在尝试从中使用非局部均值滤波函数清理一些图像。当我运行代码时,对于类型为“double”的输入参数,我得到了错误未定义的函数“image2vectors\u double”。你对如何解决这个问题有什么建议吗?我使用path将包含非局部中值滤波器代码的文件夹添加到Matlab路径,并复制了脚本所在文件夹中的文件 代码如下: IM(m,:,:) = fitsread(Image.fits); Options.kernelratio=4; Options.windowratio=4; Option

我正在尝试从中使用非局部均值滤波函数清理一些图像。当我运行代码时,对于类型为“double”的输入参数,我得到了错误
未定义的函数“image2vectors\u double”
。你对如何解决这个问题有什么建议吗?我使用
path
将包含非局部中值滤波器代码的文件夹添加到Matlab路径,并复制了脚本所在文件夹中的文件

代码如下:

IM(m,:,:) = fitsread(Image.fits);
Options.kernelratio=4;
Options.windowratio=4;
Options.verbose=true;
J=NLMF(IM,Options);
figure,
subplot(1,2,1),imshow(IM); title('Noisy image')
subplot(1,2,2),imshow(J); title('NL-means image');

这是因为该函数是一个.c文件,您需要编译该文件才能与Matlab一起使用,以及这些函数:

vectors_nlmeans_single.c
image2vectors_single.c
vectors_nlmeans_double.c
如果仔细查看文件NLMF.m的注释部分,您将看到:

% First Compile c-code!!!!, with :
%   mex vectors_nlmeans_single.c -v
%   mex image2vectors_single.c -v
%   mex vectors_nlmeans_double.c -v
%   mex image2vectors_double.c -v

我现在无法测试,但应该可以了。

谢谢!你知道为什么我编译了.c文件后Matlab会崩溃吗?不客气!Mhh我对这方面的了解非常有限,所以我想谷歌会比我更有用:)