может кто-нибудь объяснить, почему я получаю такие совершенно разные результаты для оператора Лапласа в Matlab, когда я используюРасхождение между Matlab del2 и Matlab градиента градиента
laplacian = del2(image);
против
[x, y] = gradient(image);
[xx, xy] = gradient(x);
[yx, yy] = gradient(y);
laplacian = xx + yy;
Не должны они приходят к одному и тому же? Они особенно расходятся, когда один включает dx-член.
Положив мой пример здесь, в случае она помогает: У меня есть поле тест, состоящий из
[5; 2.5+2.5i; 5i; -2.5+2.5i; -5; -2.5-2.5i; -5i; 2.5-2.5i]
раз транспонированной (я могу отправить всю матрицу, если это помогает). Внутренний блок (3: 6, 3: 6) del2() этого поля:
[-2.5 -0.625-0.625i -2.5i 0.625-0.625i ;
-0.625+0.625i 0 -0.625+0.625i 0 ;
2.5i -0.625+0.625i -2.5 -0.625+0.625i ;
0.625+0.625i 0 -0.625+0.625i 0 ]
в то время как внутренний блок (3: 6, 3: 6) хх + уу является:
[-5 -2.5-2.5i -5i -2.5-2.5i ;
-2.5+2.5i -2.5 -2.5-2.5i -2.5i ;
5i -2.5+2.5i -5 -2.5-2.5i ;
2.5+2.5i 2.5i -2.5+2.5i -2.5 ]
, который, как вы можете видеть, внесет существенные изменения в любые дальнейшие уравнения. У кого-нибудь есть объяснение, спасибо большое!
Какая функция представляет собой вашу переменную 'image'? –
Это изображение, загруженное через imread(). – barnhillec
Вы посмотрели исходный код? "type del2 «,« градиент типа » –