Matlab 非局部中值滤波器-输入参数类型为';双倍';
我正在尝试从中使用非局部均值滤波函数清理一些图像。当我运行代码时,对于类型为“double”的输入参数,我得到了错误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
未定义的函数“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我对这方面的了解非常有限,所以我想谷歌会比我更有用:)