Operațiile morfologice modifică imaginile pe baza structurii și aranjamentului pixelilor. Ei aplică nucleul unei imagini de intrare pentru a modifica caracteristicile acesteia în funcție de aranjamentul pixelilor vecini. Operațiile morfologice precum eroziunea și dilatarea sunt tehnici de procesare a imaginilor, în special pentru imaginile binare sau în tonuri de gri. Ele ajută la analiza formelor, curăță zgomotul și rafina granițele obiectelor.
listnode
Eroziune
Eroziunea în procesarea imaginilor este o operație morfologică care micșorează și subțiază limitele obiectelor dintr-o imagine prin eliminarea pixelilor de pe marginile obiectelor, făcând obiectele mai mici și eliminând zgomotul alb mic.
Scop
- Micșorează sau erodează limitele obiectelor din prim-plan (de obicei pixeli albi).
- Îndepărtează zgomotul alb fin și separă obiectele care se ating.
Cum funcționează
- Un nucleu (de obicei o matrice de 3×3 5×5 sau 7×7) alunecă peste imagine.
- Un pixel rămâne alb (1) numai dacă toți pixelii de sub nucleu sunt albi; altfel devine negru (0).
- Acest proces reduce dimensiunea obiectului și erodează marginile.
Dilatarea
Dilatarea este o operație morfologică care extinde granițele obiectelor dintr-o imagine prin adăugarea de pixeli la marginile obiectelor, făcând obiectele să pară mai mari și umplând mici goluri sau găuri.
Scop:
- Extinde limitele obiectelor din prim-plan.
- Accentuează sau mărește caracteristicile și umple micile lacune.
Cum funcționează:
- Nucleul este în mod similar convoluționat peste imagine.
- Un pixel este setat la alb (1) dacă cel putin unul pixelii corespunzători de sub nucleu este alb.
- Ca rezultat, regiunile albe cresc, îmbinând găuri mici sau unind părți rupte.
Implementarea eroziunii și dilatației
Să implementăm eroziunea și dilatarea cu OpenCV în Python
Pasul 1: importați biblioteci
Vom importa bibliotecile necesare
- cv2 : Biblioteca OpenCV pentru procesarea imaginilor.
- numpy : Pentru operații numerice și pentru a crea nuclee.
- matplotlib.pyplot : Pentru a afișa imagini în caiete.
Pasul 2: Încărcați imaginea de intrare și definiți elementele de structurare (kernel)
Nucleul definește vecinătatea operației. Opțiunile comune sunt dreptunghiuri sau discuri.
PythonImaginea folosită poate fi descărcată de pe Aici .
conversia șirului în json în java
img = cv2.imread('input.webp' 0) plt.imshow(img cmap='gray') plt.title('Original Image') plt.axis('off') plt.show() kernel = np.ones((5 5) np.uint8)
Ieșire:
OriginalPasul 3: Aplicați eroziune
Eroziunea funcționează prin alunecarea nucleului peste imagine. Un pixel rămâne alb (255) numai dacă toți pixelii de sub nucleu sunt albi, altfel devine negru (0). Acest lucru reduce limitele obiectelor și elimină zgomotul alb mic.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Ieșire:
După eroziunePasul 4: Aplicați dilatarea
Dilatarea glisează nucleul peste imagine și un pixel devine alb dacă cel puțin un pixel de sub nucleu este alb. Aceasta îngroașă regiunile albe sau obiectele și umple găurile mici.
când se termină q1Python
img_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Ieșire:
După DilatareAplicații
Eroziune
- Eliminarea zgomotului alb izolat dintr-o imagine.
- Separarea obiectelor care sunt unite sau care se ating.
- Găsirea limitelor obiectelor prin micșorarea dimensiunii obiectului.
Dilatarea
- Umplerea găurilor sau golurilor mici în obiecte.
- Unirea părților rupte sau deconectate ale aceluiași obiect.
- Folosit după eroziune (ca parte a operațiunii de „deschidere”) pentru a restabili dimensiunea obiectului, menținând în același timp îndepărtat zgomotul.
Eroziunea și dilatarea sunt operații morfologice fundamentale în procesarea imaginilor care ne permit să rafinăm curățarea și să manipulăm formele din imagini. Prin utilizarea elementelor de structurare simple, aceste tehnici ajută la eliminarea zgomotului separat sau conectarea obiectelor și îmbunătățește caracteristicile imaginii, făcându-le instrumente esențiale pentru preprocesarea și analiza eficientă în sarcinile de viziune computerizată cu OpenCV și Python.
Creați un test