filter2、conv2报错:不支持N维数组

错误原因

对于彩色图像,imread函数返回一个3维数组,其中第三维度有3个元素分别为R、G和B。

即使你读取的是黑白图像,它其实还是RGB图像。怎么判断?

读取一张图片:


A=imread('E:\MATLAB学习\qie.jpg');

查看右侧工作区:

查看matlab工作区图像数据

可以看到它是一个420×419 × 3的三维数组!

而关键在于:conv2函数和filter2函数是用于二维卷积的(参考MATLAB 线性滤波器),因此就会报错。


解决办法

读取图像后,紧接着需要用rgb2gray函数将图像转换为二维的灰度值:


A = imread('E:\MATLAB学习\qie.jpg');
B = rgb2gray(A);

然后才能进行后续的卷积工作。

更完整的例子参考: MATLAB 线性低通滤波器






公众号

关注公众号,获取一手资讯

“ filter2、conv2报错:不支持N维数组 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注