Я не видел, как это написано на документации (ни на help colfilt
ни на docs colfilt
), но я думаю, что вы можете использовать только colfilt
как nlfilter
с одноканальной изображениями. Так что если вы попытаетесь запустить пример кода, предоставленного на 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)
Вы получаете вид ошибки, которые Вы отправляли сообщение:
Ошибка при помощи> = Матричные размеры должны совпадать.
Ошибка в colfilt (строка 135) if all (block> = size (a)),% Обработать всю матрицу сразу.
Если вы thry это вместо того, который принимает только первый канал (или любую другую комбинацию каналов) он просто будет работать
% 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)
Я надеюсь, что это помогает
Вы можете показать входы (и размеры входов), которые вы передали функции colfilt, пожалуйста? – Richante
colfilt (f, [3 3], 'slide', @ std); w - размер окна окна со стороны пользователя – tortuga