Не съм го виждал написано в документацията (нито на 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)), % Обработка на цялата матрица наведнъж.
Ако вместо това опитате това, което взема само първия канал (или всяка друга комбинация от канали), просто ще работи
% 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)
Надявам се това да помогне
person
Drodbar
schedule
17.04.2012