Bitte lesen Sie das
Bezüglich Faltung haben wir es bereits im vorherigen Artikel erwähnt. Wenn Sie es nicht verstehen, können Sie den vorherigen Artikel lesen.
Nachdem kluge Kinder den Titel gesehen haben, sollten sie ihre direkte Beziehung verstehen. Für die Faltungsoperation können durch die Verwendung unterschiedlicher Vorlagen (Maske) zunächst unterschiedliche Ergebnisse erzielt werden.
Der Code lautet wie folgt:
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; }
Für die vom Gaußschen Kernel generierte Gaußsche Vorlage wie folgt:
Die laufenden Ergebnisse sind jeweils, die rechte Seite ist das von der Gaußschen 7*7-Vorlage generierte Ergebnis:
Schärfvorlage:
Laufergebnis:
Laplace-Operator:
Laufergebnisse:
Das Obige ist der Inhalt der Java-Bildfaltungsoperation, der Gaußschen Unschärfe und des Laplace-Operators. Weitere verwandte Inhalte finden Sie hier die chinesische PHP-Website (m.sbmmt.com)!