【发布时间】:2018-10-10 23:51:35
【问题描述】:
我正在尝试使用colfilt 执行自定义 Matlab 函数,如果像素的值是黑色或白色(0 或 255),则该值将是邻居的中位数。由于我使用的是colfilt,这意味着相邻值存在于同一列中,因此我执行了此功能:
function [Y] = Lab3_2(X)
n = X(5)
if(n ==255 || n ==0)
Y = median(X)
else
Y = n
end
end
函数被调用:
Y = uint8(colfilt(Isp,[3 3],'sliding',@Lab3_2))
其中Isp 是带有椒盐噪声的图像。
问题是我得到了这个错误:
使用 reshape 时出错要 RESHAPE 元素的数量不能改变。
colfilt 中的错误(第 182 行) reshape(feval(fun,x,params{:}),block(1),block(2));
我阅读了文档,它说函数必须返回一个行向量,其中包含临时矩阵中每一列的单个值。
我认为我没有正确执行此操作(我指的是我的输出变量 Y),而且我不确定 n = X(5) 行是否正确。
有人知道我该如何解决吗?
【问题讨论】: