Veuillez lire la
Concernant la convolution, nous en avons déjà parlé dans l’article précédent. Si vous ne comprenez pas, vous pouvez lire l’article précédent.
Après avoir vu le titre, les enfants intelligents devraient comprendre leur relation directe. Pour l'opération de convolution, différents résultats peuvent être obtenus en utilisant différents modèles (Masque). L'opération de convolution est implémentée en premier.
Le code est le suivant :
public void filter(double[][] mask) { toGray();//灰度化 int mh = mask.length; int mw = mask[1].length; int sh = (mh+1)/2; int sw = (mw+1)/2; double maskSum = math.sum(mask); int[] d= new int[w*h]; for(int i=(mh-1)/2+1;i<h-(mh-1)/2;i++){ for(int j=(mw-1)/2+1;j<w-(mw-1)/2;j++){ int s = 0; for(int m=0; m<mh ; m++){ for(int n=0;n<mw;n++){ s = s + (int)(mask[m] *this.data[j+n-sw +(i+m-sh)*w]); } } if(maskSum != 0) s /= maskSum; if(s < 0) s =0; if(s > 255) s = 255; d[j + i * w] = s; } } this.data = d; }
Pour le modèle gaussien généré par le noyau gaussien comme suit :
Les résultats en cours sont respectivement, le côté droit est le résultat généré par le modèle gaussien 7*7 :
Modèle d'affûtage :
Résultat d'exécution :
Opérateur laplacien :
Résultats d'exécution :
Ce qui précède est le contenu de l'opération de convolution d'image Java, du flou gaussien et de l'opérateur laplacien. Pour plus de contenu connexe, veuillez prêter attention à. le site PHP chinois (www .php.cn) !