De raster a vector en QGIS: todos los métodos y cuándo funciona cada uno

Para convertir un raster en polígonos vectoriales en
, abre Raster > Conversion > Polygonize (Raster to Vector), elige tu banda, asigna un nombre al campo de salida y ejecútalo. Obtendrás un polígono por cada grupo conectado de píxeles que comparten un valor, con ese valor escrito en la tabla de atributos. Es la respuesta correcta para un raster clasificado y la respuesta equivocada para una fotografía. La mayoría de los problemas aparecen porque no se sabe cuál de los dos se tiene.
En TerraLab desarrollamos un QGIS plugin llamado AI Segmentation. Es una fila de la última tabla de esta página, descrita como las demás.
Qué significa de raster a vector
Un raster es una cuadrícula de píxeles. Un vector es un conjunto de puntos, líneas y polígonos con coordenadas y atributos. Convertir uno en el otro significa decidir dónde se sitúa un límite, y una cuadrícula de píxeles no tiene límites propios más allá de los bordes de sus celdas.
Cada método que aparece a continuación se diferencia únicamente en lo que considera un borde. Polygonize usa cualquier lugar donde dos píxeles vecinos tengan valores diferentes, contour usa una elevación elegida y un modelo de segmentación usa el punto donde termina un objeto. Por eso solo el último funciona con una fotografía.
Elige tu método
| Lo que tienes | El método que funciona | Lo que cuesta |
|---|---|---|
| Raster clasificado o temático (cobertura del suelo, una reclasificación de pendiente, una máscara) | Raster > Conversion > Polygonize (Raster to Vector) | Gratis, incluido en el núcleo de QGIS |
| Raster continuo (NDVI, pendiente, una banda de reflectancia) | Primero Reclassify by table, después polygonize | Gratis, incluido en el núcleo de QGIS |
| DEM o cualquier superficie de elevación | Raster > Extraction > Contour, o Contour Polygons | Gratis, incluido en el núcleo de QGIS |
| Mapa de papel escaneado o un plano | GRASS r.thin más r.to.vect, o una herramienta de trazado fuera de QGIS. Nada del núcleo de QGIS lo hace bien | Gratis y lento. Existe el trazado con AI de pago |
| Ortofoto, imágenes de dron o satélite | Un modelo de segmentación. Polygonize no es aplicable | Los plugins gratuitos necesitan una tarjeta NVIDIA. Los plugins cloud tienen niveles gratuitos y después una suscripción |
La mayoría de los lectores necesita la primera fila y puede detenerse después de las dos secciones siguientes.
Polygonize, la respuesta predeterminada
El algoritmo de QGIS es Polygonize (raster to vector), con id gdal:polygonize, y envuelve la utilidad de GDAL gdal_polygonize. Crea un polígono por cada región conectada de píxeles que comparte un valor común y escribe ese valor en un atributo.

Open the tool
Raster > Conversion > Polygonize (Raster to Vector). También está en la Processing Toolbox, dentro de GDAL, Raster conversion.
Pick the band
Band 1, salvo que tus clases estén en otro lugar. Solo se usa una banda, así que un raster RGB debe reducirse primero a una banda de clases.
Name the field
DN es el valor predeterminado. Cámbialo por un nombre que sigas entendiendo dentro de seis meses, como landcover_code.
Decide on 8-connectedness
Está desactivado de forma predeterminada, por lo que los píxeles deben compartir un borde completo para unirse. Actívalo y también se unirán los píxeles que se tocan diagonalmente. En elementos diagonales estrechos, dejarlo desactivado divide un mismo elemento en una cadena de polígonos.
Save to a real file
El valor predeterminado es un layer temporal. En un raster grande esto produce decenas de miles de entidades, así que escribe directamente en un GeoPackage.
![El diálogo Polygonize (Raster to Vector) de QGIS. El layer de entrada muestra Land cover 10 m [EPSG:32631], Band number es Band 1 (Palette), el campo que se creará se llama landcover_code, Use 8-connectedness está desmarcado y la salida se escribe en un GeoPackage.](/_next/image?url=%2Fblog%2Fraster-to-vector-qgis%2F02_polygonize_dialog.jpg&w=3840&q=75)
Dos cosas te ahorran tiempo aquí.
Define un valor NoData para la clase que no quieras. GDAL utiliza la máscara de validez de la banda, de modo que los píxeles NoData se omiten en lugar de convertirse en un enorme polígono de fondo que rodea todo lo demás. Esta es la queja más habitual sobre la salida de polygonize, y es una propiedad del raster, no una configuración de la herramienta.

Asegúrate de que la banda sea de tipo entero. gdal:polygonize siempre escribe un campo entero, así que convierte una banda float al entrar. Esto falla de dos formas diferentes según cómo almacene sus valores tu raster, y ninguna de las dos genera una advertencia. Float32 pasa primero por Reclassify by table, que es la siguiente sección.
El problema de la escalera y cómo corregirlo
Polygonize traza los límites de los píxeles. Nada más. Por eso el borde diagonal de un campo vuelve como una sucesión de escalones en ángulo recto, uno por píxel, y una clasificación Sentinel de 10 m te da escalones de 10 m.

La salida es correcta. La herramienta dibuja exactamente lo que dice el raster. Simplemente no parece un mapa y ninguna configuración dentro de polygonize lo cambia. La solución consiste en ejecutar después cuatro algoritmos de geometría vectorial, en este orden.
1. Dissolve (native:dissolve). Define el campo de dissolve como el campo de clase que acabas de crear. Los polígonos vecinos de la misma clase se fusionan en una entidad por clase. Ejecútalo primero, mientras la geometría todavía es exacta, porque fusionar bordes simplificados deja slivers a lo largo de cada límite compartido. Si quieres mantener cada parcela separada en lugar de obtener una entidad multiparte por clase, marca Keep disjoint features separate en los parámetros avanzados.
2. Filter by area (native:extractbyexpression, en Vector selection). Expresión:
$area > 500
Las unidades son las unidades del CRS del layer, así que usa un CRS proyectado o el número no significará nada. Define el umbral según lo que sea una parcela real en tus datos. En una clasificación de 10 m, 500 m2 son cinco píxeles, aproximadamente el punto en el que deja de haber ruido y empiezan a aparecer elementos. La figura siguiente utilizó 2.000 m2 sobre el mismo raster, porque con 500 los slivers supervivientes se cruzaban después de simplificar. Mira el histograma de tus propias áreas en lugar de copiar cualquiera de los dos números. Si el raster deja píxeles individuales de otra clase dentro de una parcela, native:deleteholes después de este paso los elimina.
3. Simplify (native:simplifygeometries). La tolerancia predeterminada es 1.0 en las unidades del layer. Configúrala aproximadamente con el tamaño de un píxel y los escalones se convertirán en tramos rectos, con un desplazamiento del límite menor de lo que un lector puede percibir. El menú del método ofrece Douglas-Peucker (basado en distancia), Visvalingam (basado en área) y snap to grid. Visvalingam conserva mejor la forma de los elementos pequeños cuando aumentas la tolerancia.
4. Smooth (native:smoothgeometry). Úsalo solo en elementos que sean realmente curvos: arroyos, costas, parcelas de vegetación. Offset tiene un valor predeterminado de 0.25, y las iteraciones controlan cuánto se redondea. Define Maximum node angle to smooth en 90 para que cualquier esquina más aguda permanezca afilada. Así evitas que la herramienta redondee las esquinas de edificios y parcelas.
Si también quieres parcelas sólidas sin huecos interiores, native:deleteholes elimina los huecos por debajo de un área mínima, y 0.0 los elimina todos.

Reclasifica primero cuando el raster sea continuo
Polygonize sobre un raster continuo falla de una de dos formas, y cuál obtienes depende de cómo estén almacenados los valores.
Almacenado como números enteros escalados, que es como se distribuyen realmente los productos NDVI, obtienes un polígono por casi cada píxel, porque casi ningún par de píxeles comparte un valor. Medimos 39.801 polígonos a partir de 40.000 píxeles en una escena Sentinel-2.
Almacenado como floats sin procesar entre -1 y 1, la conversión a entero aplana cada valor a -1, 0 o 1 antes de que empiece el trazado. La misma escena volvió como 238 polígonos en dos clases. Parece un resultado limpio, pero no lo es: tus datos han desaparecido.
Lo mismo ocurre con la pendiente, la elevación, la temperatura o una banda de reflectancia sin procesar. La herramienta no ha fallado en ninguno de los dos casos. Traza los límites entre valores enteros y un raster continuo no tiene valores enteros útiles que trazar.

Convierte primero la superficie continua en clases con Reclassify by table, id native:reclassifybytable. La tabla de reclasificación tiene tres columnas, mínimo, máximo y nuevo valor, y acepta -inf, inf y nan para NoData. Una máscara de vegetación tiene tres filas:
| Minimum | Maximum | Value |
|---|---|---|
| -inf | 0.2 | 1 |
| 0.2 | 0.5 | 2 |
| 0.5 | inf | 3 |

Hay dos valores predeterminados que debes cambiar en los parámetros avanzados. Output data type tiene Float32 por defecto, así que configúralo como Byte o Int16 para que polygonize funcione correctamente. Range boundaries tiene min < value <= max por defecto, lo que decide en qué lado de 0.2 cae un píxel exactamente igual a 0.2.
Después aplica polygonize al raster reclasificado y ejecuta la limpieza anterior.
Contornos para un DEM
Para la elevación, no uses polygonize. Usa Contour en Raster > Extraction > Contour, id gdal:contour. El intervalo predeterminado es 10.0 en las unidades del raster y la elevación se escribe de forma predeterminada en un campo llamado ELEV.

Marca Produce 3D vector si quieres la altura en cada vértice. Déjalo desactivado para un mapa impreso, ya que mucho software elimina la coordenada Z sin avisar.
Su equivalente gdal:contour_polygon proporciona bandas rellenas entre dos elevaciones en lugar de líneas, con ELEV_MIN y ELEV_MAX en cada polígono. Es el que necesitas para un mapa hipsométrico o una extensión inundable, y te evita polygonizar manualmente un DEM reclasificado.

Los contornos de un DEM lidar salen con ruido porque la superficie tiene ruido. Suaviza el raster antes del paso de contorno, no las líneas después. Suavizar las líneas hace que se crucen.
Mapas de papel escaneados: QGIS no tiene ArcScan
Si vienes de ArcGIS buscando el equivalente de QGIS para ArcScan, no existe. El trazado interactivo de raster, en el que haces clic en una línea del escaneo y la herramienta la sigue, es una carencia real. Prefiero decirlo claramente antes que dejarte buscar el menú.
Lo que se utiliza en la práctica, aproximadamente en este orden según lo bien que funciona:
- GRASS, incluido en la mayoría de los instaladores de QGIS. Aplica un umbral al escaneo para obtener un raster binario, afínalo con r.thin y después ejecuta r.to.vect con el tipo de entidad
line. La documentación de GRASS advierte que esto crea demasiados nodos en las intersecciones y ramificaciones colgantes, así que reserva tiempo para la limpieza. Es gratis y funciona con líneas limpias. - Potrace o AutoTrace, fuera de QGIS. Convierte de bitmap a vector, vuelve a cargar el resultado y georreferéncialo. Funciona bien con escaneos de alto contraste, pero no sabe nada sobre geografía.
- Bunting Labs AI Vectorizer (entrada en el repositorio de QGIS). Un QGIS plugin que completa automáticamente una línea mientras digitalizas, orientado directamente a mapas geológicos, planos conforme a obra y planos técnicos. La limitación: envía fragmentos de raster a sus servidores, no hay nivel gratuito más allá de una prueba y sus precios publicados empiezan en 29 dólares al mes, según la información leída el 23 de agosto de 2026.
Para un puñado de elementos en una misma hoja, la digitalización manual con snapping activado sigue siendo la mejor opción. No crearía un flujo de trazado para menos de unas cincuenta entidades.
Cuándo polygonize es la herramienta equivocada
Si aplicas polygonize a una ortofoto obtienes ruido, porque no hay nada que clasificar mediante un umbral. Un tejado rojo y un coche rojo tienen valores de píxel similares. Un tejado gris y una carretera gris tienen valores de píxel similares. Las clases existen en tu cabeza, no en el archivo.
Extraer objetos de imágenes fotográficas necesita un modelo que haya aprendido cómo son los objetos. Estas herramientas escriben los vectores directamente, así que polygonize ni siquiera interviene. Esto es lo que instalas y lo que te pide cada herramienta.
| Herramienta | Lo que instalas | GPU | Cuenta | La imagen sale de tu máquina | Lo que produce | Coste |
|---|---|---|---|---|---|---|
| Deepness (source) | Plugin manager, después sus paquetes Python y un modelo ONNX | Opcional, funciona con CPU | No | No | Polygon layer, bounding boxes o un raster | Gratis |
| Geo-SAM | Plugin manager, después las dependencias y los pesos del modelo desde su propio diálogo de configuración | Opcional, los clics se ejecutan en CPU | No | No | Polygon layer, a nivel de píxel o simplificado | Gratis |
| samgeo | Un paquete Python en tu propio entorno, sin panel de QGIS | Recomendado | No | No | GeoJSON, Shapefile o GeoPackage que cargas tú mismo | Gratis |
| Mapflow (site) | Plugin manager | No | Sí | Sí, tu carga de GeoTIFF o el servicio de tiles al que lo dirijas | Polygon layer | Créditos, de pago |
| Bunting Labs AI Vectorizer | Plugin manager | No | Sí | Sí, en fragmentos de raster | Vértices en el layer que estás digitalizando | Prueba y después 29 dólares al mes |
| AI Segmentation, el nuestro | Plugin manager | No | Sí | Sí en ambos modos cloud, no para el pequeño modelo local | Polygon layer en el CRS del proyecto, con label, class, score, area_m2 y perimeter_m | Cuota gratuita y después 39 euros al mes sin IVA |
Una limitación por herramienta.
- Deepness ejecuta el modelo que le proporciones, así que primero tienes que encontrar o entrenar uno.
- Geo-SAM acepta clics y cajas, un objeto cada vez.
- samgeo no tiene interfaz de QGIS. Escribes Python.
- Mapflow ofrece un catálogo fijo de modelos para edificios, bosques, carreteras y obras, así que no puede encontrar un objeto para el que nadie haya entrenado un modelo.
- Bunting Labs AI Vectorizer sigue las líneas mientras digitalizas. No encuentra todos los objetos de una zona.
- AI Segmentation, el nuestro, envía las imágenes a un servidor en ambos modos cloud. Solo el pequeño modelo local permanece en tu máquina.
Costes y niveles gratuitos consultados el 23 de agosto de 2026.

La salida sin procesar de cualquiera de estas herramientas necesita filtrarse, igual que la salida de polygonize necesita limpiarse. En una ejecución sobre el centro de París conservamos 82 polígonos de 635, y esos 82 todavía contenían el 84 por ciento del área construida. La guía de huellas de edificios recorre ese filtrado de principio a fin, y el artículo sobre SAM en QGIS explica qué objetos encuentran bien estos modelos.
Try it free in QGIS, no card needed
Sigue leyendoAI Segmentation para QGIS: la guía completa
La versión de dos minutos
Abre las propiedades de tu raster y mira el tipo de banda y el rango de valores. Un tipo entero con menos de cien valores distintos significa que puedes ir directamente a Raster > Conversion > Polygonize (Raster to Vector) y después ejecutar Dissolve, filtrar por área y Simplify. Un float con miles de valores distintos significa que debes usar primero Reclassify by table. Una fotografía significa que nada de esto es aplicable, y la comparativa de QGIS AI plugins es la página que quieres visitar después.
Si solo necesitas edificios, nuestra herramienta gratuita de huellas de edificios los obtiene de datos abiertos en el navegador sin ningún plugin.


