dingz 发表于 2010-9-27 22:14

使用imfilter2时出现问题

我想用库函数做个简单的平滑滤波器,程序如下:
c=imread('l.jpg');
a1=imfilter2(fspecial('average',3),d);   %3*3均值滤波
imshow(a1);

出现:
??? Undefined function or method 'imfilter2' for input arguments of type 'uint8'.

Error in ==> jzlb at 2
a1=imfilter2(fspecial('average',3),c);   %3*3均值滤波

我想是图像的位数问题,但不知怎么搞。。。。。刚学MATLAB。。。求高人指点。。

Happy99 发表于 2010-9-28 00:21

用的版本是R2006a, 找不到imfilter2 ??
c=imread('l.jpg');
a1=imfilter(c,fspecial('average',3));
imshow(a1);

dingz 发表于 2010-9-28 09:44

是2007的,程序也是参照书上的,但就是会出现问题,试过用不同的图像,不同的格式,还是不行,还有什么可以试的请帮忙,谢谢~

Happy99 发表于 2010-9-28 12:40

回复 dingz 的帖子

LZ确定有imfilter2函数吗? 请用下式检查下
which imfilter2 -all

dingz 发表于 2010-9-28 12:49

有这个函数,路径也对,就是图像不知有什么问题,也试过其他图像。
还有把他转成double和16位也试过。。就是不行。这个函数对输入图像有要求的吗?

Happy99 发表于 2010-9-28 13:38

怪! 刚又用R2009a查下, 也是找不到imfilter2 !? 也上了官网查, 也没找到!?
是否为自订函数?
LZ可否贴上which imfilter2 -all的输出(路径)及help imfilter2的输出

dingz 发表于 2010-9-28 14:11

>> which imfilter2 -all
'imfilter2' not found.
>> help imfilter2

imfilter2.m not found.

Use the Help browser Search tab to search the documentation, or
type "help help" for help command options, such as help for methods.

居然也找不到。。但是有这个m文件喔

还有那段里a1=imfilter2(fspecial('average',3),d);   %3*3均值滤波
d打错了应该是c,不过还是这个问题

dingz 发表于 2010-9-28 14:29

见到有个imfilter函数
我不知道这两个函数有什么不同,求赐教。。。
这个可以找的到

C:\Documents and Settings\D\My Documents\MATLAB\imfilter.m
C:\Program Files\MATLAB\R2007a\toolbox\images\images\imfilter.m% Shadowed

dingz 发表于 2010-9-28 14:39

不好意思,是没有这个函数,应该用imfilter,
??? Function IMFILTER expected its second input, H,
to be one of these types:

double

Instead its type was uint8.

Error in ==> imfilter>parse_inputs at 358
iptcheckinput(h,{'double'},{'nonsparse'},mfilename,'H',2);

Error in ==> imfilter at 127
= parse_inputs(varargin{:});

Error in ==> jzlb at 2
a1=imfilter(fspecial('average',3),c);   %3*3均值滤波

我想是double型的,改为
c=double(imread('l.jpg'));
a1=imfilter(fspecial('average',3),c);   %3*3均值滤波
imshow(a1);


出现:??? Undefined function or method 'imfilter_mex' for input arguments of type 'int32'.

Error in ==> imfilter at 330
b1 = imfilter_mex(a,im_size,real(h),real(nonzero_h),conn,start,flags);

Error in ==> jzlb at 2
a1=imfilter(fspecial('average',3),c);   %3*3均值滤波

还有。。。可以给个程序我吗,就实现均值滤波的,处理的图像最后随便都可以,谢谢
页: [1]
查看完整版本: 使用imfilter2时出现问题