Morfoloģiskās darbības pārveido attēlus, pamatojoties uz pikseļu struktūru un izvietojumu. Tie izmanto kodolu ievades attēlam, lai mainītu tā funkcijas atkarībā no blakus esošo pikseļu izvietojuma. Morfoloģiskās darbības, piemēram, erozija un dilatācija, ir attēlu apstrādes metodes, īpaši binārajiem vai pelēktoņu attēliem. Tie palīdz analizēt formas, attīrot troksni un precizējot objektu robežas.
Erozija
Erozija attēlu apstrādē ir morfoloģiska darbība, kas samazina un samazina attēla objektu robežas, noņemot pikseļus uz objektu malām, tādējādi padarot objektus mazākus un novēršot nelielus baltos trokšņus.
Mērķis
- Samazina vai grauj priekšplāna objektu robežas (parasti baltos pikseļus).
- Noņem smalku balto troksni un atdala objektus, kas pieskaras.
Kā tas darbojas
- Kodols (parasti 3 × 3 5 × 5 vai 7 × 7 matrica no tiem) slīd pa attēlu.
- Pikselis paliek balts (1) tikai tad, ja visi pikseļi zem kodola ir balti; pretējā gadījumā tas kļūst melns (0).
- Šis process samazina objekta izmēru un noārda malas.
Izplešanās
Paplašināšana ir morfoloģiska darbība, kas paplašina attēla objektu robežas, objektu malām pievienojot pikseļus, padarot objektus lielākus un aizpildot nelielas spraugas vai caurumus.
Mērķis:
- Paplašina priekšplāna objektu robežas.
- Akcentē vai palielina iezīmes un aizpilda nelielas nepilnības.
Kā tas darbojas:
- Kodols ir līdzīgi pāri attēlam.
- Pikselis ir iestatīts uz baltu (1), ja vismaz vienu no atbilstošajiem pikseļiem zem kodola ir balts.
- Rezultātā baltie apgabali aug, apvienojot mazus caurumus vai savienojot salauztas daļas.
Erozijas un dilatācijas ieviešana
Ieviesīsim eroziju un dilatāciju ar OpenCV programmā Python
1. darbība. Importējiet bibliotēkas
Mēs importēsim nepieciešamās bibliotēkas
sql izvēlieties kā
- cv2 : OpenCV bibliotēka attēlu apstrādei.
- nejutīgs : Skaitliskām operācijām un kodolu izveidei.
- matplotlib.pyplot : Attēlu parādīšanai piezīmju grāmatiņās.
2. darbība: ielādējiet ievades attēlu un definējiet strukturēšanas elementus (kodolu)
Kodols nosaka darbības apkārtni. Parasti tiek izmantoti taisnstūri vai diski.
PythonIzmantoto attēlu var lejupielādēt no šeit .
pavasara zābaki
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)
Izvade:
Oriģināls3. darbība: uzklājiet eroziju
Erozija darbojas, bīdot kodolu pāri attēlam. Pikselis paliek balts (255) tikai tad, ja visi pikseļi zem kodola ir balti, pretējā gadījumā tas kļūst melns (0). Tas samazina objektu robežas un novērš nelielu balto troksni.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Izvade:
Pēc erozijas4. solis: pielietojiet dilatāciju
Paplašināšanās slīd kodolu pāri attēlam, un pikselis kļūst balts, ja vismaz viens pikselis zem kodola ir balts. Tas sabiezina baltos apgabalus vai objektus un aizpilda mazus caurumus.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Izvade:
Pēc paplašināšanāsLietojumprogrammas
Erozija
- Izolēta baltā trokšņa noņemšana no attēla.
- Atdala objektus, kas ir savienoti vai pieskaras.
- Objekta robežu atrašana, samazinot objekta izmēru.
Izplešanās
- Mazu caurumu vai spraugu aizpildīšana priekšmetos.
- Viena un tā paša objekta salauztu vai atvienoto daļu savienošana.
- Izmanto pēc erozijas (kā daļa no "atvēršanas" darbības), lai atjaunotu objekta izmēru, vienlaikus novēršot troksni.
Erozija un dilatācija ir fundamentālas morfoloģiskas operācijas attēlu apstrādē, kas ļauj uzlabot attēlu tīrību un manipulēt ar tām. Izmantojot vienkāršus strukturēšanas elementus, šīs metodes palīdz novērst trokšņus, kas atdala vai savieno objektus un uzlabo attēla funkcijas, padarot tos par būtiskiem rīkiem efektīvai priekšapstrādei un analīzei datorredzes uzdevumos ar OpenCV un Python.
Izveidojiet viktorīnu