2016-12-06 3 views
1
function vars = nonlinear(f) 
p = colfilt(f , [3 , 3] ,'sliding',@vimabsolute); 
imshow (p); 
end 

function v = vimabsolute(A) 
[a ~] = size(A); 
q =rand(1,a); 
v = q * A; 
end 

B = colfilt(A,[M N],'sliding',FUN) rearranges each M-by-N sliding 
neighborhood of A into a column in a temporary matrix, and then applies 
the function FUN to this matrix. FUN must return a row vector containing 
a single value for each column in the temporary matrix. (Column 
compression functions such as SUM return the appropriate type of 
output.) colfilt then rearranges the vector returned by FUN into a 
matrix of the same size as A. 

Я просто хочу попробовать, если функция colfilt может work.As документации упоминалось, является 9 М.Н. матрице для, но Забегая возвращает сообщение об ошибкеошибка при использовании функции colfilt в MATLAB

Error using * 
MTIMES does not fully support integer classes. At least one input must be scalar 

Что я делаю неправильно?

+0

Как вы загружаете свое изображение? – excaza

+0

@excaza f = imread ('XX.jpg') и нелинейный (f) – DennngP

ответ

0

Хотя документация для , по-видимому, подразумевает, что она поддерживает целочисленные типы данных, сообщение об ошибке, которое вы получаете, показывает, что это явно не означает. Ваша переменная q имеет тип double, но ваша матрица A является целым типом, возможно uint8, поскольку большинство изображений есть. Я не уверен, какой результат вы надеетесь получить от своей функции, но похоже, что вам нужно будет сделать A до double для выполнения операции. Вот несколько вариантов, которые у вас есть:

v = q * double(A);   % Cast A to double, result will now be double 
v = uint8(q * double(A)); % Cast back to uint8, results will be uint8 
          % and thus rounded off to nearest integer 
+0

Спасибо! Я хочу использовать эту функцию для выполнения локальной обработки гистограммы и попробовать один «q», чтобы увидеть, как она работает. Я считаю, что эта функция несколько напоминает CNN, которая использует im2col и col2im, правильно? – DennngP

+0

Извините, я не знаком с обработкой, которую вы делаете. Я знаю только, что вам, вероятно, придется это делать с использованием типов «double», а затем конвертировать в любой желаемый тип для полученного изображения. – gnovice

Смежные вопросы