基于python 给出tiff二值化图像转出带有空间参考的shp文件代码
时间: 2023-08-20 07:04:30 浏览: 288
图像二值化代码
以下是基于Python的tiff二值化图像转出带有空间参考的shp文件代码示例:
```python
import gdal
import ogr
import osr
# 输入tiff文件路径和输出shp文件路径
input_tiff_path = "input.tif"
output_shp_path = "output.shp"
# 打开tiff文件
tiff_ds = gdal.Open(input_tiff_path)
# 获取图像宽度和高度
width = tiff_ds.RasterXSize
height = tiff_ds.RasterYSize
# 获取图像的地理参考信息
geotransform = tiff_ds.GetGeoTransform()
projection = tiff_ds.GetProjection()
# 创建shp文件和图层
driver = ogr.GetDriverByName("ESRI Shapefile")
shp_ds = driver.CreateDataSource(output_shp_path)
spatial_ref = osr.SpatialReference(wkt=projection)
layer = shp_ds.CreateLayer("polygon", srs=spatial_ref, geom_type=ogr.wkbPolygon)
# 创建字段
field_defn = ogr.FieldDefn("id", ogr.OFTInteger)
layer.CreateField(field_defn)
# 获取栅格值
band = tiff_ds.GetRasterBand(1)
data = band.ReadAsArray()
# 将二值化图像转换为多边形
gdal.Polygonize(band, None, layer, 0, [], callback=None)
# 保存shp文件
shp_ds = None
```
注:上述代码使用了GDAL库和OGR库,需要先安装这两个库。同时,还需要注意输入的tiff文件必须是二值化图像。
阅读全文