Corrosion : Après avoir traduit l'élément structurel B par a, Ba est obtenu. Si Ba est inclus dans X, on enregistre ce point a L'ensemble de tous les points a qui remplissent les conditions ci-dessus est appelé le résultat de l'érosion de X par. B. Exprimé sous la forme : E(X)={a|
Ba
X}=X
B, comme le montre la figure
Expansion : Elle peut être vue comme la double opération de corrosion. Sa définition est : après avoir traduit l'élément structurel B par a, Ba est obtenu Si Ba heurte X, on enregistre ce point a. L’ensemble de tous les points a qui satisfont aux conditions ci-dessus est appelé le résultat du développement de X par B. La formule est exprimée comme suit : D(X)={a
| Ba↑X}=X
B, comme indiqué sur la figure.
Pour plus de détails, veuillez consulter Expansion, érosion et raffinement de l'image
Maintenant que nous comprenons le principe, voici le code pour l'implémenter :
Expansion :
public void Expand(int[][] mask){ IterBinary();//二值化 int mh = mask.length; int mw = mask[1].length; int sh = (mh+1)/2; int sw = (mw+1)/2; 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++){ if(mask[m] *this.data[j+n-sw +(i+m-sh)*w] == 255) s = 255; } } d[j + i * w] = s; } } this.data = d; }
Corrosion :
public void Erosion(int[][] mask){ IterBinary();//二值化 int mh = mask.length; int mw = mask[1].length; int sh = (mh+1)/2; int sw = (mw+1)/2; 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++){ if(mask[m] *255 == this.data[j+n-sw +(i+m-sh)*w]) s++; } } d[j + i * w] = (s==mh*mw)?255:0; } } this.data = d; }
Parmi eux, le masque est le modèle, et nous prenons tous une matrice tout-en-un 3*3. A noter que ces deux opérations ont été effectuées sur du texte blanc sur fond noir.
Image originale et résultat de l'expansion sur l'image originale :
Puis se corroder sur la base de l'expansion ( dans l'image originale Il n'y aura pas de corrosion. .):
Si le texte est noir sur fond blanc, les résultats sont tout le contraire, et le résultat est le même. suit :
Ce qui précède est le contenu de la corrosion et de l'expansion des images Java. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn). !