2012-04-17 4 views
1

Я хотел вычислить гистограмму n локальную гистограмму выравнивания входного изображения, используя colfit. Но когда я запускаю код, я получаю следующую ошибку. ??? Ошибка при использовании ==> ge Размеры матрицы должны совпадать.Woking с colfit в matlab

Ошибка в ==> colfilt при 135 if all (block> = size (a)),% Обработать всю матрицу сразу.

Ошибка в ==> localhist at 10 z = colfilt (f, [w w], 'slide', @ std);

Просьба представить некоторые сведения.

+1

Вы можете показать входы (и размеры входов), которые вы передали функции colfilt, пожалуйста? – Richante

+0

colfilt (f, [3 3], 'slide', @ std); w - размер окна окна со стороны пользователя – tortuga

ответ

1

Я не видел, как это написано на документации (ни на 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) 

Я надеюсь, что это помогает