Recentemente ho implementato il filtro di registro, l'unica cosa che serve è quella formula e sigma come parametro. Se è necessaria una maschera di dimensioni fisse, è possibile memorizzare i valori della maschera di filtro nella matrice e utilizzarla, o ricalcolarla ogni volta e creare la matrice necessaria. La dimensione del filtro dipende dal valore sigma, se viene utilizzato più di quella dimensione - non rende un senso, poiché la parte restante che è fuori da una dimensione massima viene calcolata su zeri usando quella formula. Così, per esempio, si ha una dimensione del filtro = 9X9 Poi al fine di calcolare il filtro stesso come una matrice, è necessario eseguire la formula attraverso questi valori:
int halfsize = size/2;
for (int x = -halfsize; x < halfsize; ++x)
for (int y = -halfsize; y < halfsize; ++y)
mask[x][y] = LoGFunction(x, y);
Qualcosa del genere. Significa anche che la dimensione del filtro deve essere un valore dispari. Spero che questo aiuti. Nel tuo caso, size = 9 sigma = 1.4 x e cambiamenti y attraverso -4 a 4. usando la formula al punto (0, 0) (è il centro del filtro) si ottiene qualcosa di vicino - 12
Ma se si inserisce il sigma a 0,2986 Otterrete la risposta necessaria vicino a -40. anche io non capisco perché è scritto che il valore sigma è pari a 1,4 maggio ba mi manca qualcosa .. mi corregga se ho commesso un errore si prega di
Non è possibile tripla timbro un doppio timbro. – rook
Potete elaborare per favore? – Don
... x e y si riferiscono alle coordinate di un pixel. –