Я пытаюсь создать адаптивный эллиптический структурирующий элемент для изображения, чтобы расширить или размыть его. Я пишу этот код, но, к сожалению, все элементы структурирования ones(2*M+1)
.
I = input('Enter the input image: ');
M = input('Enter the maximum allowed semi-major axes length: ');
% determining ellipse parameteres from eigen value decomposition of LST
row = size(I,1);
col = size(I,2);
SE = cell(row,col);
padI = padarray(I,[M M],'replicate','both');
padrow = size(padI,1);
padcol = size(padI,2);
for m = M+1:padrow-M
for n = M+1:padcol-M
a = (l2(m-M,n-M)+eps/l1(m-M,n-M)+l2(m-M,n-M)+2*eps)*M;
b = (l1(m-M,n-M)+eps/l1(m-M,n-M)+l2(m-M,n-M)+2*eps)*M;
if e1(m-M,n-M,1)==0
phi = pi/2;
else
phi = atan(e1(m-M,n-M,2)/e1(m-M,n-M,1));
end
% defining structuring element for each pixel of image
x0 = m;
y0 = n;
se = zeros(2*M+1);
row_se = 0;
for i = x0-M:x0+M
row_se = row_se+1;
col_se = 0;
for j = y0-M:y0+M
col_se = col_se+1;
x = j-y0;
y = x0-i;
if ((x*cos(phi)+y*sin(phi))^2)/a^2+((x*sin(phi)-y*cos(phi))^2)/b^2 <= 1
se(row_se,col_se) = 1;
end
end
end
SE{m-M,n-M} = se;
end
end
a
, b
и phi
— длина большой и малой полуосей, а фи — угол между a
и осью x.
Я использовал 2 функции MATLAB для вычисления тензора локальной структуры изображения, а затем его собственных значений и собственных векторов для каждого пикселя. Это матрицы l1
, l2
, e1
и e2
.
l1
,l2
иe1
? -- Не используйтеatan
, используйтеatan2
. -- Почему вы делаетеfor i = x0-M:x0+M
, а затемy = x0-i
вместоfor y = -M:M
? - person Cris Luengo   schedule 25.04.2018l1
иl2
и т. д.), чтоa
иb
больше, чем M. - person Cris Luengo   schedule 25.04.2018eps
, как правило, не очень хорошая идея. Что вы пытаетесь сделать сeps
? - person Yvon   schedule 25.04.2018l1
,l2
,e1
иe2
для каждого пикселя. - person bahar   schedule 25.04.2018i = x0-M:x0+M
, потому что хочу связать систему координат, т. е.x
иy
, со строками и столбцами изображения в определенной окрестности, т. е.[M M]
каждого пикселя, т. е.x0
иy0
. - person bahar   schedule 25.04.2018eps
, к собственным значениям. это выражено в моем справочном документе. - person bahar   schedule 25.04.2018y = -M:M
вместоi = x0-M:x0+M
иy = x0-i
. Спасибо. - person bahar   schedule 25.04.2018eps/l1(m-M,n-M)
выглядит очень неразумным для меня. Я думаю, что у @CrisLuengo есть ответ на этот вопрос. - person Yvon   schedule 25.04.2018l1
l2
e1
иe2
, чтобы мы могли запустить ваш код? Если фактический расчет слишком длинный, не могли бы вы составить несколько фиктивных значений, которые входят в правильный диапазон? Я спрашиваю об этом, потому что у нас есть требование минимального воспроизводимого примера. - person Yvon   schedule 25.04.2018