Da raster a vettore in QGIS: ogni metodo e quando funziona

Per convertire un raster in poligoni vettoriali in
, apri Raster > Conversion > Polygonize (Raster to Vector), scegli la banda, assegna un nome al campo di output ed esegui. Ottieni un poligono per ogni gruppo connesso di pixel che condividono un valore, con quel valore scritto nella tabella degli attributi. È la risposta giusta per un raster classificato e quella sbagliata per una fotografia. La maggior parte dei problemi nasce dal non sapere quale dei due si ha davanti.
Sviluppiamo un plugin QGIS presso TerraLab chiamato AI Segmentation. È una riga nella tabella finale di questa pagina, descritta come le altre.
Cosa significa da raster a vettore
Un raster è una griglia di pixel. Un vettore è un insieme di punti, linee e poligoni con coordinate e attributi. Convertire l'uno nell'altro significa decidere dove si trova un confine, e una griglia di pixel non ha confini propri oltre ai bordi delle sue celle.
Ogni metodo qui sotto differisce solo per ciò che considera un bordo. Polygonize usa ogni punto in cui due pixel vicini hanno valori diversi, contour usa una quota scelta e un modello di segmentazione usa il punto in cui termina un oggetto. Ecco perché solo l'ultimo funziona su una fotografia.
Scegli il metodo
| Cosa hai | Il metodo che funziona | Il costo |
|---|---|---|
| Raster classificato o tematico (copertura del suolo, una riclassificazione della pendenza, una maschera) | Raster > Conversion > Polygonize (Raster to Vector) | Gratuito, nel QGIS di base |
| Raster continuo (NDVI, pendenza, una banda di riflettanza) | Prima Reclassify by table, poi polygonize | Gratuito, nel QGIS di base |
| DEM o qualsiasi superficie altimetrica | Raster > Extraction > Contour, oppure Contour Polygons | Gratuito, nel QGIS di base |
| Mappa cartacea scansionata o una planimetria | GRASS r.thin più r.to.vect, oppure uno strumento di tracciamento esterno a QGIS. Nulla nel QGIS di base lo fa bene | Gratuito e lento. Esiste il tracciamento AI a pagamento |
| Ortofoto, immagini da drone o satellitari | Un modello di segmentazione. Polygonize non si applica | I plugin gratuiti richiedono una scheda NVIDIA. I plugin cloud hanno piani gratuiti, poi un abbonamento |
La maggior parte dei lettori ha bisogno della prima riga e può fermarsi dopo le due sezioni successive.
Polygonize, la risposta predefinita
L'algoritmo QGIS è Polygonize (raster to vector), id gdal:polygonize, e utilizza l'utility GDAL gdal_polygonize. Crea un poligono per ogni regione connessa di pixel che condividono un valore comune e scrive quel valore in un attributo.

Open the tool
Raster > Conversion > Polygonize (Raster to Vector). Si trova anche nel Processing Toolbox, sotto GDAL, Raster conversion.
Pick the band
Banda 1, a meno che le tue classi non si trovino altrove. Una sola banda, quindi un raster RGB deve essere ridotto a una singola banda di classi prima di questo passaggio.
Name the field
DN è il valore predefinito. Rinominalo con qualcosa che riuscirai ancora a capire tra sei mesi, come landcover_code.
Decide on 8-connectedness
Disattivata per impostazione predefinita, quindi i pixel devono condividere un bordo completo per unirsi. Attivala e si uniranno anche i pixel che si toccano diagonalmente. Sulle geometrie diagonali sottili, lasciarla disattivata divide una singola geometria in una catena di poligoni.
Save to a real file
Il valore predefinito è un layer temporaneo. Su un raster grande questo produce decine di migliaia di geometrie, quindi salva direttamente in un GeoPackage.
![La finestra di dialogo Polygonize (Raster to Vector) di QGIS. Il layer di input è Land cover 10 m [EPSG:32631], il numero di banda è Band 1 (Palette), il campo da creare si chiama landcover_code, Use 8-connectedness non è selezionato e l'output viene scritto in un GeoPackage.](/_next/image?url=%2Fblog%2Fraster-to-vector-qgis%2F02_polygonize_dialog.jpg&w=3840&q=75)
Due cose ti fanno risparmiare tempo.
Imposta un valore NoData sulla classe che non vuoi. GDAL usa la maschera di validità della banda, quindi i pixel NoData vengono saltati invece di diventare un enorme poligono di sfondo che avvolge tutto il resto. È il problema più comune dell'output di polygonize, ed è una proprietà del raster, non un'impostazione dello strumento.

Assicurati che la banda sia di tipo intero. gdal:polygonize scrive sempre un campo intero, quindi converte una banda float durante l'input. Questo fallisce in due modi diversi a seconda di come il raster memorizza i valori, e nessuno dei due casi produce un avviso. Float32 passa prima da Reclassify by table, come spiegato nella prossima sezione.
Il problema dei bordi a scalini e come correggerlo
Polygonize traccia i bordi dei pixel. Nient'altro. Quindi un bordo diagonale di un campo torna come una serie di scalini ad angolo retto, uno per pixel, e una classificazione Sentinel da 10 m ti restituisce scalini da 10 m.

È un output corretto. Lo strumento disegna esattamente ciò che dice il raster. Semplicemente non sembra una mappa, e nessuna impostazione dentro polygonize lo cambia. La correzione consiste in quattro algoritmi di geometria vettoriale, eseguiti successivamente in quest'ordine.
1. Dissolve (native:dissolve). Imposta come campo di dissolvenza il campo delle classi appena creato. I poligoni confinanti della stessa classe vengono uniti in una geometria per classe. Eseguilo per primo, mentre la geometria è ancora esatta, perché unire bordi semplificati lascia sliver lungo ogni confine condiviso. Se vuoi mantenere separate le singole porzioni invece di una geometria multipart per classe, seleziona Keep disjoint features separate nei parametri avanzati.
2. Filtra per area (native:extractbyexpression, in Vector selection). Espressione:
$area > 500
Le unità sono quelle del CRS del layer, quindi usa un CRS proiettato o il numero non significa nulla. Imposta la soglia in base a quella che rappresenta una porzione reale nei tuoi dati. In una classificazione da 10 m, 500 m2 equivalgono a cinque pixel, più o meno il punto in cui termina il rumore e iniziano le geometrie. La figura qui sotto usa 2.000 m2 sullo stesso raster, perché con 500 gli sliver rimasti si intersecavano dopo la semplificazione. Guarda l'istogramma delle tue aree invece di copiare uno dei due numeri. Se il raster lascia pixel singoli di un'altra classe all'interno di una porzione, native:deleteholes dopo questo passaggio li rimuove.
3. Simplify (native:simplifygeometries). La tolleranza predefinita è 1.0 nelle unità del layer. Impostala all'incirca alla dimensione di un pixel e gli scalini collasseranno in segmenti diritti, spostando il bordo meno di quanto un lettore possa vedere. Il menu del metodo offre Douglas-Peucker (basato sulla distanza), Visvalingam (basato sull'area) e snap to grid. Visvalingam mantiene meglio la forma delle geometrie piccole quando aumenti la tolleranza.
4. Smooth (native:smoothgeometry). Solo per elementi realmente curvi: corsi d'acqua, coste, porzioni di vegetazione. Offset ha come valore predefinito 0.25, mentre le iterazioni controllano quanto diventa arrotondata. Imposta Maximum node angle to smooth su 90 e ogni angolo più acuto resterà tale. In questo modo lo strumento non arrotonda gli angoli di edifici e particelle.
Se vuoi anche porzioni solide senza vuoti interni, native:deleteholes rimuove i buchi sotto un'area minima, mentre 0.0 li rimuove tutti.

Riclassifica prima quando il raster è continuo
Polygonize su un raster continuo produce uno di due risultati errati, a seconda di come sono memorizzati i valori.
Memorizzato come numeri interi scalati, come vengono effettivamente distribuiti i prodotti NDVI, ottieni un poligono per quasi ogni pixel, perché quasi nessuna coppia di pixel condivide un valore. Abbiamo misurato 39.801 poligoni su 40.000 pixel in una scena Sentinel-2.
Memorizzato come float grezzi tra -1 e 1, la conversione a intero appiattisce ogni valore a -1, 0 oppure 1 prima che inizi il tracciamento. La stessa scena è tornata come 238 poligoni in due classi. Sembra un risultato pulito, ma non lo è: i tuoi dati sono spariti.
Lo stesso vale per pendenza, quota, temperatura o una banda di riflettanza grezza. Lo strumento non ha fallito in nessuno dei due casi. Traccia i confini tra valori interi e un raster continuo non ha valori interi utili da tracciare.

Trasforma prima la superficie continua in classi con Reclassify by table, id native:reclassifybytable. La tabella di riclassificazione contiene tre colonne, minimo, massimo e nuovo valore, e accetta -inf, inf e nan per NoData. Una maschera della vegetazione è composta da tre righe:
| Minimum | Maximum | Value |
|---|---|---|
| -inf | 0.2 | 1 |
| 0.2 | 0.5 | 2 |
| 0.5 | inf | 3 |

Nei parametri avanzati devi cambiare due valori predefiniti. Output data type è impostato su Float32, quindi seleziona Byte o Int16 e polygonize si comporterà correttamente. Range boundaries è impostato su min < value <= max, e decide da quale lato di 0.2 finirà un pixel esattamente uguale a 0.2.
Poi esegui polygonize sul raster riclassificato e applica la pulizia descritta sopra.
Contour per un DEM
Per la quota, non usare polygonize. Usa Contour in Raster > Extraction > Contour, id gdal:contour. L'intervallo predefinito è 10.0 nelle unità del raster, e la quota viene inserita per impostazione predefinita in un campo chiamato ELEV.

Seleziona Produce 3D vector se vuoi l'altezza su ogni vertice. Lascialo disattivato per una mappa stampata, perché molti software eliminano silenziosamente la coordinata Z.
Il suo algoritmo fratello gdal:contour_polygon restituisce fasce riempite tra due quote invece di linee, con ELEV_MIN e ELEV_MAX su ogni poligono. È quello che vuoi per una mappa ipsometrica o un'estensione allagata, e ti evita di polygonizzare manualmente un DEM riclassificato.

Le curve di livello ottenute da un DEM lidar risultano rumorose perché è rumorosa la superficie. Smussa il raster prima del passaggio Contour, non le linee dopo. Smussare le linee fa sì che si intersechino.
Mappe cartacee scansionate: QGIS non ha ArcScan
Se arrivi da ArcGIS e cerchi l'equivalente QGIS di ArcScan, non esiste. Il tracciamento interattivo del raster, in cui fai clic su una linea della scansione e lo strumento la segue, è una lacuna reale. Preferisco dirlo chiaramente invece di lasciarti cercare il menu.
Quello che si usa davvero, più o meno in ordine di efficacia:
- GRASS, incluso nella maggior parte degli installer di QGIS. Soglia la scansione per ottenere un raster binario, assottiglialo con r.thin, poi esegui r.to.vect con il tipo di geometria
line. La documentazione GRASS avverte che questo crea nodi in eccesso alle giunzioni e diramazioni sospese, quindi prevedi una fase di pulizia. È gratuito e funziona su linee pulite. - Potrace o AutoTrace, esterni a QGIS. Da bitmap a vettore, poi reimporta il risultato e georeferenzialo. Funziona bene sulle scansioni ad alto contrasto, ma non sa nulla della geografia.
- Bunting Labs AI Vectorizer (voce nel repository QGIS). Un plugin QGIS che completa automaticamente una linea mentre digitalizzi, pensato proprio per mappe geologiche, as-built e planimetrie. Il limite: invia porzioni di raster ai propri server, non offre un piano gratuito oltre la prova e i prezzi pubblicati partono da 29 dollari al mese, secondo i dati del 23 agosto 2026.
Per una manciata di geometrie su un singolo foglio, la digitalizzazione manuale con lo snapping attivo resta la soluzione migliore. Non costruirei un flusso di tracciamento per meno di una cinquantina di geometrie.
Quando polygonize è lo strumento sbagliato
Applica polygonize a un'ortofoto e ottieni rumore, perché non c'è nulla da sottoporre a soglia. Un tetto rosso e un'auto rossa hanno valori di pixel simili. Un tetto grigio e una strada grigia hanno valori di pixel simili. Le classi esistono nella tua testa, non nel file.
Estrarre oggetti da immagini fotografiche richiede un modello che abbia imparato l'aspetto degli oggetti. Questi strumenti scrivono direttamente i vettori, quindi polygonize non entra mai in gioco. Ecco cosa installare e cosa richiede ciascuno.
| Strumento | Cosa installi | GPU | Account | L'immagine lascia il tuo computer | Risultato | Costo |
|---|---|---|---|---|---|---|
| Deepness (sorgente) | Plugin manager, poi i suoi pacchetti Python e un modello ONNX | Opzionale, la CPU funziona | No | No | Layer poligonale, bounding boxes o un raster | Gratuito |
| Geo-SAM | Plugin manager, poi dipendenze e pesi del modello dalla sua finestra delle impostazioni | Opzionale, i clic vengono eseguiti sulla CPU | No | No | Layer poligonale, a livello di pixel o semplificato | Gratuito |
| samgeo | Un pacchetto Python nel tuo ambiente, senza pannello QGIS | Consigliata | No | No | GeoJSON, Shapefile o GeoPackage che carichi autonomamente | Gratuito |
| Mapflow (sito) | Plugin manager | No | Sì | Sì, il GeoTIFF che carichi o il servizio tile a cui lo indirizzi | Layer poligonale | Crediti, a pagamento |
| Bunting Labs AI Vectorizer | Plugin manager | No | Sì | Sì, in porzioni di raster | Vertici nel layer che stai digitalizzando | Prova, poi 29 dollari al mese |
| AI Segmentation, il nostro | Plugin manager | No | Sì | Sì in entrambe le modalità cloud, no per il piccolo modello locale | Layer poligonale nel CRS del progetto, con label, class, score, area_m2 e perimeter_m | Quota gratuita, poi 39 euro al mese IVA esclusa |
Un limite per ciascuno.
- Deepness esegue il modello che gli fornisci, quindi devi prima trovarne o addestrarne uno.
- Geo-SAM usa clic e riquadri, un oggetto alla volta.
- samgeo non ha un'interfaccia QGIS. Devi scrivere Python.
- Mapflow offre un catalogo fisso di modelli, per edifici, foreste, strade e cantieri, quindi non può trovare un oggetto per il quale nessuno lo ha addestrato.
- Bunting Labs AI Vectorizer segue le linee mentre digitalizzi. Non trova ogni oggetto in una zona.
- AI Segmentation, il nostro, invia le immagini a un server in entrambe le modalità cloud. Solo il piccolo modello locale resta sul tuo computer.
Costi e piani gratuiti verificati il 23 agosto 2026.

L'output grezzo di qualsiasi modello ha bisogno di un filtro, così come l'output di polygonize ha bisogno di una pulizia. In un'esecuzione sul centro di Parigi abbiamo conservato 82 poligoni su 635, e questi 82 rappresentavano comunque l'84 percento dell'area edificata. La guida alle impronte degli edifici illustra il filtraggio dall'inizio alla fine, mentre il post su SAM in QGIS spiega quali oggetti questi modelli individuano bene.
Try it free in QGIS, no card needed
Continua a leggereAI Segmentation per QGIS: la guida completa
La versione in due minuti
Apri le proprietà del raster e guarda il tipo della banda e l'intervallo dei valori. Un raster intero con meno di cento valori distinti significa che puoi andare direttamente a Raster > Conversion > Polygonize (Raster to Vector), poi Dissolve, filtro per area e Simplify. Un raster float con migliaia di valori distinti significa usare prima Reclassify by table. Una fotografia significa che nulla di tutto questo si applica, e il confronto tra plugin AI per QGIS è la pagina che vuoi visitare dopo.
Se ti servono solo gli edifici, il nostro strumento gratuito per le impronte degli edifici li recupera dai dati aperti direttamente nel browser, senza alcun plugin.


