1

我想使用 colfit 计算输入图像的直方图 n 局部直方图均衡化。但是当我运行代码时,我得到以下错误。???错误使用 ==> ge 矩阵尺寸必须一致。

==> colfilt 在 135 处出错 if all(block>=size(a)), % 一次处理整个矩阵。

==> localhist 在 10 时出错 z=colfilt(f,[ww],'sliding',@std);

请提供一些见解。

4

1 回答 1

1

我还没有看到它写在文档上(既不是 onhelp colfilt也不是 on docs colfilt),但我认为您只能将colfilt, asnlfilter与单通道图像一起使用。因此,如果您尝试在help colfilt3 通道图像上运行提供的示例代码,请说:

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)

我希望这有帮助

于 2012-04-17T16:16:50.850 回答