Qgis几何校正工具(Georeferencer)

本文详细介绍如何使用QGIS的Georeferencer插件进行几何校正,包括安装工具、抓取同名点及设置转换方式,适用于图像与矢量图匹配需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


经常会用到影响和矢量图进行匹配,qgis可以实现这个功能,防止自己忘记,记录一下过程。

一、安装Georeferencer工具

这个一个插件功能,本来不一定会带有,找到plugins菜单,找到插件管理,点开如下图。
在这里插入图片描述
关闭上面窗口后,会显示如下图:
在这里插入图片描述
我这边已经安装好了,没安装的要安装一下,安装好后,勾选一下Georeferencer GDAL。然后关闭此窗口,即可在raster菜单下找到Georeferencer功能。

二、抓取同名点

点开几何校正工具,如下图:
在这里插入图片描述
打开图片,edit中可以添加点,就是添加同名点,在图片和矢量图上分别选择点。根据转换方式的需求选择几个点,一般平移3-5个点就够了。

三、设置转换方式进行转换

在settings菜单里面设置转换方式,然后点击开始转换即可。

### 将JPG文件转换为Shapefile (SHP) 的方法 将 JPG 文件转换为 GIS Shapefile 需要经过多个步骤,涉及地理配准、矢量化以及属性赋值的过程。以下是详细的说明: #### 1. 地理配准(Georeferencing) 在将 JPG 图像转换为 Shapefile 之前,必须对其进行地理配准。这一步骤是为了使图像能够与实际地理位置对应起来。 - **工具推荐**: QGIS 或 ArcGIS 是常用的地理信息系统软件,支持地理配准功能。 - **操作流程**: - 在 QGIS 中加载 JPG 文件作为栅格层。 - 启用地形配准插件(Georeferencer),并通过已知的控制点设置坐标位置[^1]。 - 完成配准后导出为 GeoTIFF 格式的文件以便后续处理。 ```python from osgeo import gdal, ogr # 加载未配准的 JPG 文件 input_raster = 'path_to_jpg_file.jpg' output_geotiff = 'georeferenced_image.tif' gdal.Translate(output_geotiff, input_raster) ``` --- #### 2. 矢量化(Vectorization) 完成地理配准之后,需要将栅格数据(GeoTIFF)转换为矢量格式(Shapefile)。这一过程通常称为矢量化。 - **手动矢量化**: - 使用 QGIS 或其他 GIS 软件,在配准后的影像上绘制几何图形(如多边形、线或点),表示感兴趣的区域或要素。 - 这种方式适合于复杂场景下的精确标注。 - **自动矢量化**: - 应用图像分割和分类技术来自动化此过程。例如,利用机器学习模型识别特定类型的地物(如道路、建筑等),并将它们提取为矢量形式[^3]。 ```bash # 利用 GDAL 和 OGR 实现简单的矢量化命令行工具 gdal_polygonize.py georeferenced_image.tif -f "ESRI Shapefile" output_shapefile.shp ``` --- #### 3. 属性赋值 创建好的 Shapefile 只包含了基本的空间信息,还需要为其添加属性字段以描述各个要素的具体特性。 - 在 QGIS 中打开刚刚生成的 Shapefile 文件。 - 添加新的列至属性表中,并填充相应的数值或者文字标签。 --- #### 4. 数据验证与优化 最后一步是对最终成果进行质量检验,确保其满足预期用途的要求。 - 检查拓扑关系是否存在错误。 - 对比原始 JPG 图片确认形状是否准确无误[^2]。 --- ### 总结 综上所述,从 JPG 至 SHP 的整个转化链路涵盖了四个主要环节——即地理定位校正、像素级向量映射构建、实体特性的定义录入以及整体品质把控评估。每一步都至关重要且相互关联紧密。 ```python import rasterio from rasterio.features import shapes def jpg_to_shp(jpg_path, shapefile_output): with rasterio.open(jpg_path) as src: image = src.read() results = ( {'properties': {'raster_val': v}, 'geometry': s} for i, (s, v) in enumerate( shapes(image, mask=None, transform=src.transform))) geom_list = list(results) schema = { 'geometry': 'Polygon', 'properties': [('raster_val', 'int')] } with fiona.open(shapefile_output, 'w', driver='ESRI Shapefile', crs=src.crs, schema=schema) as dst: dst.writerecords(geom_list) ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值