我想使用 colfit 计算输入图像的直方图 n 局部直方图均衡化。但是当我运行代码时,我得到以下错误。???错误使用 ==> ge 矩阵尺寸必须一致。
==> colfilt 在 135 处出错 if all(block>=size(a)), % 一次处理整个矩阵。
==> localhist 在 10 时出错 z=colfilt(f,[ww],'sliding',@std);
请提供一些见解。
我想使用 colfit 计算输入图像的直方图 n 局部直方图均衡化。但是当我运行代码时,我得到以下错误。???错误使用 ==> ge 矩阵尺寸必须一致。
==> colfilt 在 135 处出错 if all(block>=size(a)), % 一次处理整个矩阵。
==> localhist 在 10 时出错 z=colfilt(f,[ww],'sliding',@std);
请提供一些见解。
我还没有看到它写在文档上(既不是 onhelp colfilt
也不是 on docs colfilt
),但我认为您只能将colfilt
, asnlfilter
与单通道图像一起使用。因此,如果您尝试在help colfilt
3 通道图像上运行提供的示例代码,请说:
I = imread('peppers.png'); % 'peppers.png' is just a demo color image usually provided with matblab
figure, imshow(I)
I2 = uint8(colfilt(I,[5 5],'sliding',@mean));
figure, imshow(I2)
您会收到您发布的那种错误:
使用 >= 矩阵维度的错误必须一致。
如果 all(block>=size(a)), % 一次处理整个矩阵,则 colfilt 错误(第 135 行)。
如果你改用这个,它只需要第一个通道(或通道的任何其他组合)它就可以工作
% which is one of the example images usually provided with matlab
J = imread('peppers.png');
I = J(:,:,1);
figure, imshow(I)
I2 = uint8(colfilt(I,[5 5],'sliding',@mean));
figure, imshow(I2)
我希望这有帮助