想利用python对一张二值图进行矢量化,但是通过调用,发现并没有结果。请问一下各位大神,是不是哪里出问题了?输入图片保证为二值图,输出应该是shp文件。哪里出错了呢?感谢各位大神#import gdal, ogr, osrfrom osgeo import gdalfrom osgeo import ogrfrom osgeo import osrimport osdef raster2poly(raster, outshp): inraster = gdal.Open(dist_on_skel.png) # 读取路径中的栅格数据 inband = inraster.GetRasterBand(1) # 这个波段就是最后想要转为矢量的波段,如果是单波段数据的话那就都是1 prj = osr.SpatialReference() prj.ImportFromWkt(inraster.GetProjection()) # 读取栅格数据的投影信息,用来为后面生成的矢量做准备 drv = ogr.GetDriverByName("ESRI Shapefile") if os.path.exists(outshp): # 若文件已经存在,则删除它继续重新做一遍 drv.DeleteDataSource(outshp) Polygon = drv.CreateDataSource(outshp) # 创建一个目标文件 Poly_layer = Polygon.CreateLayer(raster[:-4], srs=prj, geom_type=ogr.wkbMultiPolygon) # 对shp文件创建一个图层,定义为多个面类 newField = ogr.FieldDefn('value', ogr.OFTReal) # 给目标shp文件添加一个字段,用来存储原始栅格的pixel value Poly_layer.CreateField(newField) gdal.FPolygonize(inband, None, Poly_layer, 0) # 核心函数,执行的就是栅格转矢量操作 Polygon.SyncToDisk() Polygon = None