Zum Inhalt springen
QGIS
Tutorial
GeoAI

Raster zu Vektor in QGIS: Jede Methode und wann sie funktioniert

Drei Ansichten: ein Landbedeckungsraster als Gitter aus farbigen Pixeln, dieselbe Grenze, die mit Polygonize als Treppe nachgezeichnet wurde, und dieselbe Grenze erneut als glatte grüne Linie nach Dissolve, einer Flächenfilterung, Simplify und Smooth.
Drei Ansichten: ein Landbedeckungsraster als Gitter aus farbigen Pixeln, dieselbe Grenze, die mit Polygonize als Treppe nachgezeichnet wurde, und dieselbe Grenze erneut als glatte grüne Linie nach Dissolve, einer Flächenfilterung, Simplify und Smooth.

Um ein Raster in Vektorpolygone in umzuwandeln, öffne Raster > Conversion > Polygonize (Raster to Vector), wähle dein Band, benenne das Ausgabefeld und starte den Vorgang. Du erhältst ein Polygon pro zusammenhängender Pixelgruppe mit demselben Wert, wobei dieser Wert in die Attributtabelle geschrieben wird. Das ist die richtige Lösung für ein klassifiziertes Raster und die falsche Lösung für ein Foto. Die meisten Probleme entstehen dadurch, dass nicht klar ist, welcher Fall vorliegt.

Wir entwickeln bei TerraLab ein QGIS plugin namens AI Segmentation. Es ist eine Zeile in der letzten Tabelle auf dieser Seite und wird wie die anderen beschrieben.

Was Raster zu Vektor bedeutet

Ein Raster ist ein Gitter aus Pixeln. Ein Vektor ist eine Menge aus Punkten, Linien und Polygonen mit Koordinaten und Attributen. Ein Raster in einen Vektor umzuwandeln bedeutet, festzulegen, wo eine Grenze liegt. Ein Pixelgitter besitzt über die Kanten seiner Zellen hinaus keine eigenen Grenzen.

Jede Methode unten unterscheidet sich nur darin, was sie als Kante betrachtet. Polygonize verwendet jede Stelle, an der zwei benachbarte Pixel unterschiedliche Werte haben, Contour verwendet eine gewählte Höhe und ein Segmentierungsmodell verwendet die Stelle, an der ein Objekt endet. Deshalb funktioniert nur die letzte Methode bei einem Foto.

Wähle deine Methode

Was du hastDie passende MethodeWas sie kostet
Klassifiziertes oder thematisches Raster (Landbedeckung, eine neu klassifizierte Neigung, eine Maske)Raster > Conversion > Polygonize (Raster to Vector)Kostenlos, in QGIS enthalten
Kontinuierliches Raster (NDVI, Neigung, ein Reflexionsband)Zuerst Reclassify by table, danach PolygonizeKostenlos, in QGIS enthalten
DEM oder eine andere HöhenoberflächeRaster > Extraction > Contour oder Contour PolygonsKostenlos, in QGIS enthalten
Eingescannte Papierkarte oder ein PlanGRASS r.thin plus r.to.vect oder ein Tracing-Tool außerhalb von QGIS. Nichts im QGIS-Kern erledigt das gutKostenlos und langsam. Kostenpflichtiges AI-Tracing gibt es
Orthofoto, Drohnen- oder SatellitenbildEin Segmentierungsmodell. Polygonize ist nicht anwendbarKostenlose plugins benötigen eine NVIDIA-Karte. Cloud plugins haben kostenlose Kontingente, danach ein Abonnement

Die meisten Leser benötigen die erste Zeile und können nach den nächsten beiden Abschnitten aufhören.

Polygonize, die Standardlösung

Der QGIS-Algorithmus ist Polygonize (raster to vector), die id lautet gdal:polygonize, und er verwendet das GDAL-Werkzeug gdal_polygonize. Er erstellt ein Polygon für jede zusammenhängende Pixelregion mit einem gemeinsamen Wert und schreibt diesen Wert in ein Attribut.

Die QGIS-3.44-Dokumentationsseite zur GDAL-Rasterkonvertierung mit dem Eintrag Polygonize (raster to vector), dem Standardmenü und der Parametertabelle mit INPUT, BAND, FIELD und EIGHT_CONNECTEDNESS
Die Referenz für alle unten zitierten Standardwerte: die QGIS-3.44-Dokumentation für gdal:polygonize, aufgenommen am 23. August 2026. Standardmenü: Raster, dann Conversion.

Open the tool

Raster > Conversion > Polygonize (Raster to Vector). Das Werkzeug befindet sich auch in der Processing Toolbox unter GDAL, Raster conversion.

Pick the band

Band 1, außer deine Klassen liegen an anderer Stelle. Es wird nur ein Band verwendet. Ein RGB-Raster muss daher vor diesem Schritt auf ein einzelnes Klassenband reduziert werden.

Name the field

DN ist der Standardwert. Benenne es in etwas um, das du auch in sechs Monaten noch verstehst, zum Beispiel landcover_code.

Decide on 8-connectedness

Standardmäßig deaktiviert, daher müssen Pixel eine vollständige Kante teilen, um verbunden zu werden. Aktiviere es, damit auch diagonal angrenzende Pixel verbunden werden. Bei dünnen diagonalen Strukturen führt die deaktivierte Einstellung dazu, dass ein Objekt in eine Kette aus Polygonen aufgeteilt wird.

Save to a real file

Standardmäßig wird ein temporäres layer erstellt. Bei einem großen Raster entstehen dadurch zehntausende Features, daher solltest du direkt in ein GeoPackage schreiben.

Der QGIS-Dialog Polygonize (Raster to Vector). Als Eingabelayer ist Land cover 10 m [EPSG:32631] ausgewählt, die Bandnummer ist Band 1 (Palette), das zu erstellende Feld heißt landcover_code, Use 8-connectedness ist nicht aktiviert und die Ausgabe wird in ein GeoPackage geschrieben.
Die vier wichtigen Parameter bei einem 10-m-Ausschnitt von ESA WorldCover im Tal der Drome. Das Feld wird von DN in landcover_code umbenannt und die Ausgabe geht direkt in ein GeoPackage statt in ein temporäres layer.

Zwei Dinge sparen dir hier Zeit.

Setze für die Klasse, die du nicht möchtest, einen NoData-Wert. GDAL verwendet die Gültigkeitsmaske des Bands. NoData-Pixel werden daher übersprungen, statt ein riesiges Hintergrundpolygon zu bilden, das alles andere umschließt. Das ist die häufigste Beschwerde über Polygonize-Ausgaben und eine Eigenschaft des Rasters, keine Werkzeugeinstellung.

Die Referenzseite für gdal_polygonize auf gdal.org mit der Übersicht sowie den Optionen -8, -nomask und -mask
Das GDAL-Werkzeug unter dem QGIS-Algorithmus, aufgenommen am 23. August 2026. Das Verhalten der Gültigkeitsmaske ergibt sich aus dem Flag -nomask.

Stelle sicher, dass das Band einen Integer-Datentyp besitzt. gdal:polygonize schreibt immer ein Integer-Feld und konvertiert daher ein Float-Band beim Einlesen. Je nachdem, wie dein Raster seine Werte speichert, kann das auf zwei verschiedene Arten schiefgehen, ohne dass du gewarnt wirst. Float32 wird zuerst mit Reclassify by table verarbeitet. Das ist der nächste Abschnitt.

Das Treppenproblem und wie du es behebst

Polygonize zeichnet Pixelgrenzen nach. Mehr nicht. Eine diagonale Feldgrenze wird daher als Folge rechtwinkliger Stufen dargestellt, eine pro Pixel. Bei einer Sentinel-Klassifizierung mit 10 m erhältst du 10 m hohe Treppen.

Polygonize-Ausgabe über einem 10-m-Landbedeckungsraster bei ungefähr 1:1.500. Eine rosafarbene Ackerfläche liegt zwischen grüner Baumfläche und gelbem Grasland. Jede diagonale Grenze besteht aus einer Folge quadratischer, ein Pixel breiter Stufen.
Unbereinigte gdal:polygonize-Ausgabe mit 3.551 Polygonen über dem ESA-WorldCover-Raster, aus dem sie stammt. Zähle die Stufen entlang einer beliebigen Diagonale: Jede ist ein 10-m-Pixel.

Das Ergebnis ist korrekt. Das Werkzeug zeichnet exakt, was das Raster vorgibt. Es sieht nur nicht wie eine Karte aus, und keine Einstellung innerhalb von Polygonize ändert daran etwas. Die Lösung besteht aus vier vector geometry-Algorithmen, die anschließend in dieser Reihenfolge ausgeführt werden.

1. Dissolve (native:dissolve). Setze das Dissolve-Feld auf das gerade erstellte Klassenfeld. Benachbarte Polygone derselben Klasse werden zu einem Feature pro Klasse zusammengeführt. Führe diesen Schritt zuerst aus, solange die Geometrie noch exakt ist, denn das Vereinigen vereinfachter Kanten hinterlässt entlang jeder gemeinsamen Grenze schmale Spalten. Wenn du jede Fläche getrennt behalten möchtest, statt ein Multipart-Feature pro Klasse zu erzeugen, aktiviere in den erweiterten Parametern Keep disjoint features separate.

2. Nach Fläche filtern (native:extractbyexpression, in Vector selection). Ausdruck:

$area > 500

Die Einheiten entsprechen den Einheiten des layer-CRS. Verwende daher ein projiziertes CRS, sonst bedeutet die Zahl nichts. Setze den Schwellenwert so, dass er zu einer echten Fläche in deinen Daten passt. Bei einer 10-m-Klassifizierung entsprechen 500 m2 fünf Pixeln. Das ist ungefähr der Punkt, an dem Rauschen endet und Flächen beginnen. Die folgende Abbildung verwendet 2.000 m2 auf demselben Raster, weil sich die verbleibenden schmalen Flächen bei 500 m2 nach der Vereinfachung einmal kreuzten. Sieh dir das Histogramm deiner eigenen Flächen an, statt eine der beiden Zahlen zu kopieren. Wenn das Raster einzelne Pixel einer anderen Klasse innerhalb einer Fläche hinterlässt, entfernt native:deleteholes sie nach diesem Schritt.

3. Simplify (native:simplifygeometries). Die Standardtoleranz beträgt 1.0 in den Einheiten des layer. Setze sie ungefähr auf die Größe eines Pixels. Dann werden die Treppen zu geraden Abschnitten, während sich die Grenze weniger verschiebt, als ein Leser sehen kann. Das Methodenmenü bietet Douglas-Peucker (entfernungsbasiert), Visvalingam (flächenbasiert) und snap to grid. Visvalingam erhält die Form kleiner Features besser, wenn du die Toleranz erhöhst.

4. Smooth (native:smoothgeometry). Nur bei Objekten, die tatsächlich gekrümmt sind: Bäche, Küstenlinien, Vegetationsflächen. Der Standardwert für Offset ist 0.25, und die Iterationen bestimmen, wie rund die Geometrie wird. Setze Maximum node angle to smooth auf 90. Jede Ecke, die spitzer ist, bleibt dann scharf. So verhindert man, dass das Werkzeug die Ecken von Gebäuden und Flurstücken abrundet.

Wenn du außerdem geschlossene Flächen ohne innere Lücken möchtest, entfernt native:deleteholes Löcher unterhalb einer Mindestfläche. Mit 0.0 werden alle entfernt.

Derselbe Landbedeckungsausschnitt nach der Bereinigung. Die Polygonumrisse verlaufen nun als glatte Kurven über dem weiterhin sichtbaren Pixelgitter, und die kleinen Rauschpolygone sind verschwunden.
Derselbe Ausschnitt mit derselben Symbolisierung nach Dissolve, einer Flächenfilterung bei 2.000 m2, deleteholes, Simplify bei 10 m und Smooth mit einem maximalen Knotenwinkel von 90. Die Anzahl sinkt von 3.551 auf 724, und die Stufen erscheinen als Kurven.

Bei kontinuierlichen Rastern zuerst Reclassify verwenden

Polygonize auf einem kontinuierlichen Raster geht auf eine von zwei Arten schief. Welche davon eintritt, hängt davon ab, wie die Werte gespeichert sind.

Als skalierte ganze Zahlen gespeichert, wie NDVI-Produkte tatsächlich ausgeliefert werden, erhältst du für fast jedes Pixel ein Polygon, weil fast keine zwei Pixel denselben Wert besitzen. Wir haben bei einer Sentinel-2-Szene 39.801 Polygone aus 40.000 Pixeln gemessen.

Als rohe Floats zwischen -1 und 1 gespeichert, reduziert die Konvertierung in Integer jeden Wert auf -1, 0 oder 1, bevor die Nachzeichnung beginnt. Dieselbe Szene ergab 238 Polygone in zwei Klassen. Das sieht nach einem sauberen Ergebnis aus, ist es aber nicht: Deine Daten sind verloren.

Dasselbe gilt für Neigung, Höhe, Temperatur oder ein rohes Reflexionsband. Das Werkzeug ist in keinem der beiden Fälle fehlgeschlagen. Es zeichnet Grenzen zwischen Integer-Werten nach, und ein kontinuierliches Raster besitzt keine nützlichen Integer-Werte, die man nachzeichnen könnte.

Eine Nahansicht eines NDVI-Rasters bei ungefähr 1:1.000 über landwirtschaftlichen Flächen mit einer dunkelgrünen bewaldeten Fläche neben hellen Feldern. Jedes einzelne 10-m-Pixel besitzt einen eigenen Polygonumriss, sodass der Ausschnitt wie ein Gitter wirkt. Der Eintrag im layer-Panel lautet ndvi_polygonized mit 39801 Features.
NDVI aus einer Sentinel-2-Szene vom 11. August 2025, als skalierte ganze Zahlen gespeichert, wie NDVI-Produkte ausgeliefert werden, und unverändert polygonisiert. 39.801 Polygone aus 40.000 Pixeln, weil fast keine zwei Pixel denselben Wert besitzen.

Wandle die kontinuierliche Oberfläche zuerst mit Reclassify by table, id native:reclassifybytable, in Klassen um. Die Reklassifizierungstabelle verwendet drei Spalten: Minimum, Maximum und den neuen Wert. Für NoData werden -inf, inf und nan akzeptiert. Eine Vegetationsmaske besteht aus drei Zeilen:

MinimumMaximumWert
-inf0.21
0.20.52
0.5inf3
Der QGIS-Dialog Reclassify by Table mit dem Float32-NDVI-Raster als Eingabe und geöffneten Advanced Parameters. Range boundaries steht auf min kleiner als value kleiner als oder gleich max, und Output data type steht auf Byte. Darüber liegt der Editor der festen Tabelle mit drei Zeilen: minus unendlich bis 0.2 ergibt 1, 0.2 bis 0.5 ergibt 2, 0.5 bis unendlich ergibt 3.
Die dreizeilige Vegetationsmaske, eingetragen in die feste Tabelle. Die beiden Standardwerte, die sich ändern sollten, liegen im dahinterliegenden erweiterten Bereich: Output data type, hier auf Byte gesetzt, und Range boundaries.

In den erweiterten Parametern solltest du zwei Standardwerte ändern. Output data type steht standardmäßig auf Float32. Setze es auf Byte oder Int16, damit Polygonize korrekt arbeitet. Range boundaries steht standardmäßig auf min < value <= max. Dadurch wird festgelegt, auf welcher Seite von 0.2 ein Pixel mit genau 0.2 landet.

Danach polygonisierst du das reklassifizierte Raster und führst die oben beschriebene Bereinigung aus.

Contours für ein DEM

Bei Höhen solltest du nicht Polygonize verwenden. Nutze Contour unter Raster > Extraction > Contour, id gdal:contour. Das Intervall beträgt standardmäßig 10.0 in den Einheiten des Rasters, und die Höhe wird standardmäßig in ein Feld namens ELEV geschrieben.

Der QGIS-Dialog Contour mit Copernicus DEM 30 m als Eingabelayer, einem Abstand von 10 zwischen den Höhenlinien, dem Attributnamen ELEV und geöffneten Advanced Parameters, in denen Produce 3D vector nicht aktiviert ist.
gdal:contour auf einem 30-m-Copernicus-DEM-Kachel über der Drome. Intervall 10 in den Einheiten des Rasters, Höhe in ELEV geschrieben und Produce 3D vector deaktiviert.

Aktiviere Produce 3D vector, wenn du die Höhe an jedem Vertex benötigst. Für eine gedruckte Karte solltest du es deaktiviert lassen, da viele Programme die Z-Koordinate stillschweigend entfernen.

Das zugehörige Werkzeug gdal:contour_polygon erzeugt gefüllte Bänder zwischen zwei Höhen statt Linien, mit ELEV_MIN und ELEV_MAX auf jedem Polygon. Das ist die richtige Wahl für eine hypsometrische Karte oder eine Überflutungsausdehnung. Außerdem erspart es dir, ein reklassifiziertes DEM von Hand zu polygonisieren.

Zwei Ansichten desselben hügeligen Ausschnitts. Links braune Höhenlinien im Abstand von 10 m über einem grauen Hillshade. Die 50-m-Linien sind dicker gezeichnet und mit 400, 450, 500, 550, 600 und 650 beschriftet. Rechts dasselbe Gelände als gefüllte Bänder von Grün in den Tälern bis Braun auf den Gipfeln.
Dasselbe DEM, dasselbe 10-m-Intervall, zwei Algorithmen. gdal:contour erzeugt Linien, die du anhand von ELEV beschriftest. gdal:contour_polygon erzeugt gefüllte Bänder mit ELEV_MIN und ELEV_MAX, wie sie eine hypsometrische Karte benötigt.

Contours aus einem Lidar-DEM sind verrauscht, weil die Oberfläche verrauscht ist. Glätte das Raster vor dem Contour-Schritt und nicht die Linien danach. Durch das Glätten der Linien können sie sich kreuzen.

Eingescannte Papierkarten: QGIS hat kein ArcScan

Wenn du aus ArcGIS kommst und nach dem QGIS-Gegenstück zu ArcScan suchst, gibt es keines. Interaktives Raster-Tracing, bei dem du auf einem Scan eine Linie anklickst und das Werkzeug ihr folgt, ist eine echte Lücke. Ich sage das lieber offen, als dich nach dem Menü suchen zu lassen.

Was tatsächlich verwendet wird, ungefähr in der Reihenfolge seiner Praxistauglichkeit:

  • GRASS, in den meisten QGIS-Installationen enthalten. Wandle den Scan in ein binäres Raster um, dünne es mit r.thin aus und führe anschließend r.to.vect mit dem Feature-Typ line aus. Die GRASS-Dokumentation warnt davor, dass an Kreuzungen und offenen Enden zu viele Knoten entstehen. Plane daher eine Bereinigung ein. Kostenlos und geeignet für saubere Linien.
  • Potrace oder AutoTrace, außerhalb von QGIS. Bitmap in Vektor umwandeln, das Ergebnis zurückbringen und georeferenzieren. Gut bei kontrastreichen Scans, aber blind für alles, was mit Geografie zu tun hat.
  • Bunting Labs AI Vectorizer (QGIS repository listing). Ein QGIS plugin, das eine Linie beim Digitalisieren automatisch vervollständigt und sich gezielt an geologische Karten, Bestandspläne und Pläne richtet. Die Einschränkung: Es sendet Rasterausschnitte an die Server des Anbieters, über eine Testphase hinaus gibt es kein kostenloses Kontingent, und die veröffentlichten Preise beginnen bei 29 Dollar pro Monat, Stand 23. August 2026.

Bei einer Handvoll Features auf einem Blatt gewinnt weiterhin die manuelle Digitalisierung mit aktiviertem Snapping. Für weniger als ungefähr fünfzig Features würde ich keinen Tracing-Workflow aufbauen.

Wann Polygonize das falsche Werkzeug ist

Wenn du ein Orthofoto mit Polygonize verarbeitest, erhältst du Rauschen, weil es nichts zu klassifizieren gibt. Ein rotes Dach und ein rotes Auto haben ähnliche Pixelwerte. Ein graues Dach und eine graue Straße haben ähnliche Pixelwerte. Die Klassen existieren in deinem Kopf, nicht in der Datei.

Um Objekte aus fotografischen Bildern zu extrahieren, brauchst du ein Modell, das gelernt hat, wie Objekte aussehen. Diese Werkzeuge schreiben Vektoren direkt, daher kommt Polygonize gar nicht zum Einsatz. Hier siehst du, was du installierst und was das jeweilige Werkzeug von dir verlangt.

WerkzeugWas du installierstGPUKontoBilder verlassen deinen RechnerAusgabeKosten
Deepness (Quelle)Plugin manager, danach seine Python packages und ein ONNX modelOptional, CPU funktioniertNeinNeinPolygon layer, bounding boxes oder ein RasterKostenlos
Geo-SAMPlugin manager, danach Abhängigkeiten und model weights über den eigenen EinstellungsdialogOptional, Klicks laufen auf der CPUNeinNeinPolygon layer, auf Pixelebene oder vereinfachtKostenlos
samgeoEin Python package in deiner eigenen Umgebung, kein QGIS-PanelEmpfohlenNeinNeinGeoJSON, Shapefile oder GeoPackage, das du selbst lädstKostenlos
Mapflow (Website)Plugin managerNeinJaJa, dein GeoTIFF-Upload oder der tile service, auf den du verweistPolygon layerCredits, kostenpflichtig
Bunting Labs AI VectorizerPlugin managerNeinJaJa, in RasterausschnittenVertices im layer, den du digitalisierstTestphase, danach 29 Dollar pro Monat
AI Segmentation, unser ProduktPlugin managerNeinJaJa in beiden Cloud-Modi, nein beim kleinen lokalen ModellPolygon layer im Projekt-CRS mit label, class, score, area_m2 und perimeter_mKostenloses Kontingent, danach 39 Euro pro Monat ohne MwSt.

Jeweils eine Einschränkung.

  • Deepness führt das Modell aus, das du ihm übergibst. Du musst also zuerst eines finden oder trainieren.
  • Geo-SAM verwendet Klicks und Boxen, jeweils für ein Objekt.
  • samgeo besitzt keine QGIS-Oberfläche. Du schreibst Python.
  • Mapflow liefert einen festen Katalog von Modellen für Gebäude, Wald, Straßen und Baustellen. Es kann daher kein Objekt finden, für das es nicht trainiert wurde.
  • Bunting Labs AI Vectorizer folgt Linien, während du digitalisierst. Es findet nicht jedes Objekt in einer Zone.
  • AI Segmentation, unser Produkt, sendet Bilder in beiden Cloud-Modi an einen Server. Nur das kleine lokale Modell bleibt auf deinem Rechner.

Kosten und kostenlose Kontingente, Stand 23. August 2026.

Eine Vorstadtstraße auf Google-Satellite-Bildern in QGIS. Sechs Hausdächer rechts der Straße sind rot umrandet und gefüllt, weitere Polygone in verschiedenen Farben bedecken die Häuser auf der linken Seite.
Modellbasierte Extraktion in QGIS über Google-Satellite-Bildern, aufgenommen am 23. August 2026. Jedes Dach ist ein eigenes Polygon und lässt sich wie jedes andere Vektor-Feature bearbeiten. Polygonize kann dies nicht erzeugen, weil die Pixelwerte kein Dach von einer Einfahrt unterscheiden.

Die rohe Modellausgabe jedes dieser Werkzeuge muss genauso gefiltert werden, wie Polygonize-Ausgaben bereinigt werden müssen. Bei einem Lauf über das Zentrum von Paris behielten wir 82 von 635 Polygonen. Diese 82 enthielten weiterhin 84 Prozent der bebauten Fläche. Der Leitfaden zu Gebäudegrundrissen beschreibt diesen Filterschritt vollständig, und der SAM-in-QGIS-Beitrag zeigt, welche Objekte diese Modelle gut finden.

Try it free in QGIS, no card needed

Die Version in zwei Minuten

Öffne die Eigenschaften deines Rasters und sieh dir den Bandtyp und den Wertebereich an. Integer mit weniger als hundert unterschiedlichen Werten bedeutet: direkt zu Raster > Conversion > Polygonize (Raster to Vector), danach Dissolve, nach Fläche filtern und Simplify. Float mit tausenden unterschiedlichen Werten bedeutet: zuerst Reclassify by table. Bei einem Foto ist nichts davon anwendbar. Der QGIS-AI-plugin-Vergleich ist die nächste passende Seite.

Wenn du nur Gebäude benötigst, holt unser kostenloses Werkzeug für Gebäudegrundrisse sie direkt im Browser aus Open Data, ganz ohne plugin.