在MATLAB中使用colfilt函数的错误
我只是想尝试一下colfilt函数是否可以工作。正如文档中提到的,A是一个9×MN的矩阵,但是运行它会返回错误消息在MATLAB中使用colfilt函数的错误,matlab,image-processing,Matlab,Image Processing,我只是想尝试一下colfilt函数是否可以工作。正如文档中提到的,A是一个9×MN的矩阵,但是运行它会返回错误消息 function vars = nonlinear(f) p = colfilt(f , [3 , 3] ,'sliding',@vimabsolute); imshow (p); end function v = vimabsolute(A) [a ~] = size(A); q =rand(1,a); v = q * A; end B = colfilt(A,[M N],'
function vars = nonlinear(f)
p = colfilt(f , [3 , 3] ,'sliding',@vimabsolute);
imshow (p);
end
function v = vimabsolute(A)
[a ~] = size(A);
q =rand(1,a);
v = q * A;
end
B = colfilt(A,[M N],'sliding',FUN) rearranges each M-by-N sliding
neighborhood of A into a column in a temporary matrix, and then applies
the function FUN to this matrix. FUN must return a row vector containing
a single value for each column in the temporary matrix. (Column
compression functions such as SUM return the appropriate type of
output.) colfilt then rearranges the vector returned by FUN into a
matrix of the same size as A.
我做错了什么?尽管的文档似乎暗示它支持整数数据类型,但您收到的错误消息表明它显然不支持。变量
q
是一种类型,但矩阵A
是一种整数类型,可能与大多数图像一样。我不确定您希望从函数中得到什么结果,但看起来您需要将A
转换为double
来执行该操作。以下是您可以选择的几个选项:
Error using *
MTIMES does not fully support integer classes. At least one input must be scalar
尽管的文档似乎暗示它支持整数数据类型,但您收到的错误消息表明它显然不支持整数数据类型。变量
q
是一种类型,但矩阵A
是一种整数类型,可能与大多数图像一样。我不确定您希望从函数中得到什么结果,但看起来您需要将A
转换为double
来执行该操作。以下是您可以选择的几个选项:
Error using *
MTIMES does not fully support integer classes. At least one input must be scalar
如何加载图像?@excaza f=imread('XX.jpg')和非线性(f)如何加载图像?@excaza f=imread('XX.jpg')和非线性(f)谢谢!我想用这个函数来完成局部直方图处理,试着用一个“q”来看看它是如何工作的。我发现这个函数有点像CNN,同样使用im2col和col2im,对吗?对不起,我不熟悉你正在做的处理。我只知道您可能需要使用
double
类型,然后转换为结果图像所需的任何类型。谢谢!我想用这个函数来完成局部直方图处理,试着用一个“q”来看看它是如何工作的。我发现这个函数有点像CNN,同样使用im2col和col2im,对吗?对不起,我不熟悉你正在做的处理。我只知道您可能需要使用double
类型,然后转换为结果图像所需的任何类型。