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

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 hast | Die passende Methode | Was 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 Polygonize | Kostenlos, in QGIS enthalten |
| DEM oder eine andere Höhenoberfläche | Raster > Extraction > Contour oder Contour Polygons | Kostenlos, in QGIS enthalten |
| Eingescannte Papierkarte oder ein Plan | GRASS r.thin plus r.to.vect oder ein Tracing-Tool außerhalb von QGIS. Nichts im QGIS-Kern erledigt das gut | Kostenlos und langsam. Kostenpflichtiges AI-Tracing gibt es |
| Orthofoto, Drohnen- oder Satellitenbild | Ein Segmentierungsmodell. Polygonize ist nicht anwendbar | Kostenlose 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.

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.](/_next/image?url=%2Fblog%2Fraster-to-vector-qgis%2F02_polygonize_dialog.jpg&w=3840&q=75)
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.

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.

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.

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.

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:
| Minimum | Maximum | Wert |
|---|---|---|
| -inf | 0.2 | 1 |
| 0.2 | 0.5 | 2 |
| 0.5 | inf | 3 |

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.

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.

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
lineaus. 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.
| Werkzeug | Was du installierst | GPU | Konto | Bilder verlassen deinen Rechner | Ausgabe | Kosten |
|---|---|---|---|---|---|---|
| Deepness (Quelle) | Plugin manager, danach seine Python packages und ein ONNX model | Optional, CPU funktioniert | Nein | Nein | Polygon layer, bounding boxes oder ein Raster | Kostenlos |
| Geo-SAM | Plugin manager, danach Abhängigkeiten und model weights über den eigenen Einstellungsdialog | Optional, Klicks laufen auf der CPU | Nein | Nein | Polygon layer, auf Pixelebene oder vereinfacht | Kostenlos |
| samgeo | Ein Python package in deiner eigenen Umgebung, kein QGIS-Panel | Empfohlen | Nein | Nein | GeoJSON, Shapefile oder GeoPackage, das du selbst lädst | Kostenlos |
| Mapflow (Website) | Plugin manager | Nein | Ja | Ja, dein GeoTIFF-Upload oder der tile service, auf den du verweist | Polygon layer | Credits, kostenpflichtig |
| Bunting Labs AI Vectorizer | Plugin manager | Nein | Ja | Ja, in Rasterausschnitten | Vertices im layer, den du digitalisierst | Testphase, danach 29 Dollar pro Monat |
| AI Segmentation, unser Produkt | Plugin manager | Nein | Ja | Ja in beiden Cloud-Modi, nein beim kleinen lokalen Modell | Polygon layer im Projekt-CRS mit label, class, score, area_m2 und perimeter_m | Kostenloses 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.

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
WeiterlesenAI Segmentation für QGIS: Der komplette Leitfaden
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.


