raster - 在GDAL中复制光栅exif
问题描述
我有两个大小相同的图像 - 第一个是无人机的图像,第二个是面具。我需要减去两个图像,当然还要将原始图像中的 exif 数据转换为结果图像。可以在 gdal 或 rasterio 中使用吗?谢谢。
解决方案
根据我使用 DJI 无人机的经验,航拍图像通常以 JPEG 格式捕获。元数据可以通过 GDAL 访问,如下所示:
from osgeo import gdal
im = gdal.Open('ImageName.jpg', 0)
exif = im.GetMetadata()
这将返回一个包含 EXIF 元数据的 Python 字典。要将元数据复制到新图像,您只需执行以下操作:
outimg = im.GetDriver().CreateCopy('NewImageName.jpg', im, callback=gdal.TermProgress_nocb)
outimg.SetMetadata(exif)
del im, outimg, exif # close datasets to commit changes to disk
然后,您可以根据需要编辑新创建的图像(例如,将像素值乘以二进制掩码)。
推荐阅读
- node.js - 应该以什么格式创建获取 POST 请求以访问 Imagga API?
- javascript - 剑道网格内联编辑提交功能
- c# - 枚举可以作为成员持有类吗?
- c++ - Flex/Bison Markdown 转 HTML 程序
- firebase - 使用 Firebase 规则自动删除节点
- android - Google 地方信息 Android
- stripe-payments - 如何将 Stripe-terminal-physical-device BBPOS-Chipper 2x 连接到 Android 应用程序以开始使用终端功能
- html - 我怎样才能给这些卡片元素相同的大小?
- asp.net - Request.Cookies(name) 和 Request.Cookies.Get(name) 有什么区别吗?
- c# - File.Exists 在许多异步任务之一中返回 false