GNU/Linux 下EXIF相关小工具
来自Jack's Lab
(版本间的差异)
(→) |
(→gpscorrelate) |
||
(未显示1个用户的4个中间版本) | |||
第86行: | 第86行: | ||
== gpscorrelate == | == gpscorrelate == | ||
+ | |||
+ | JPG 的 EXIF 里是有地理坐标经、纬度信息的 | ||
+ | |||
+ | gpscorrelate 就是用来维护这个信息的,可读出,可写入(-g name.gpx 提供GPS记录的、GPX格式的轨迹文件) | ||
+ | |||
+ | <pre> | ||
+ | $ sudo apt-get install gpscorrelate | ||
+ | |||
+ | # 显示 EXIF 中 GPS 信息 | ||
+ | $ gpscorrelate -s 10074.jpg | ||
+ | EXIF-GPS Photo matching program. | ||
+ | Daniel Foote, 2005. | ||
+ | |||
+ | 10074.jpg: 2009:11:01 07:15:40, Lat 40.569658, Long 116.730972, Elevation 402.901400. | ||
+ | |||
+ | # 移除JPG中的GPS信息 | ||
+ | $ gpscorrelate -r 10074.jpg | ||
+ | EXIF-GPS Photo matching program. | ||
+ | Daniel Foote, 2005. | ||
+ | |||
+ | 10074.jpg: Removed GPS tags. | ||
+ | |||
+ | $ gpscorrelate -s 10074.jpg | ||
+ | EXIF-GPS Photo matching program. | ||
+ | Daniel Foote, 2005. | ||
+ | |||
+ | 10074.jpg: 2009:11:01 07:15:40, No GPS Data. | ||
+ | |||
+ | |||
+ | # 用JPG的创建时间,去GPS记录的轨迹文件中找对应的坐标,找到后写入JPG的EXIF | ||
+ | # 因为GPS轨迹文件中记录的时间都是UTC(时区为0),相机记录的JPG时间一般是本地时区,比如中国是 +8,这个偏差用 '-z +8' 来调整,这个 8小时是加在 GPS时间上 | ||
+ | # JPG 与 GPS 时间秒上的偏差,用 '--photooffset 5' 来调整,这个 5s 是加在 JPG 时间上 | ||
+ | $ gpscorrelate -z +8 --photooffset 5 -g /path/to/gps-track.gpx 1024.jpg | ||
+ | |||
+ | 找不到对应时间点的,则在前后两个点之间插值计算 | ||
+ | </pre> | ||
<br><br> | <br><br> |
2016年3月27日 (日) 23:46的最后版本
目录 |
[编辑] 1 exiftags
显示 JPG 图像内 EXIF 信息的工具:
$ sudo apt-get install exiftags # 显示EXIF中相机相关参数 $ exiftags -c 0.jpg Camera-Specific Properties: Equipment Make: SONY Camera Model: NEX-5R Camera Software: Adobe Photoshop Lightroom 5.0 (Macintosh) Maximum Lens Aperture: f/1.8 Focal Length (35mm Equiv): 75 mm # 显示EXIF中所有参数 $ exiftags -a 0.jpg
[编辑] 2 ImageMagick
强大的命令行图像处理包,内含 convert/identify/display/animate 等强大工具
$ sudo apt-get install imagemagick # 获取图像拍照时相机的旋转方向 $ identify -verbose orient-8.jpg | grep Exif:Orientation Exif:Orientation: 08
Orientation 的值有 1 - 8 个整数值:
Value | 0th Row | 0th Column 1 top left side 2 top right side 3 bottom right side 4 bottom left side 5 left side top 6 right side top 7 right side bottom 8 left side bottom
比如值为 8 时,表示图片第 0 行是当时相机屏幕的最左边;图片第 0 列是相机屏幕的底边。因此这个图需要顺时针转 90度
用 exiftags 的输出:
$ exiftags orient-8.jpg | grep Orientation Image Orientation: Left-Hand, Bottom
[编辑] 3 jhead
JPEG Exif header manipulation tool
$ sudo apt-get install jhead # 自动处理图像旋转 $ jhead -autorot orient-8.jpg
[编辑] 4 exiv2
支持 JPG/PNG/RW2/ARW/TIFF/GIF 等等图片属性修改的工具
$ sudo apt-get install exiv2 # 修改时间属性,减去30s $ exiv2 -a -0:00:30 ad test.jpg
[编辑] 5 gpscorrelate
JPG 的 EXIF 里是有地理坐标经、纬度信息的
gpscorrelate 就是用来维护这个信息的,可读出,可写入(-g name.gpx 提供GPS记录的、GPX格式的轨迹文件)
$ sudo apt-get install gpscorrelate # 显示 EXIF 中 GPS 信息 $ gpscorrelate -s 10074.jpg EXIF-GPS Photo matching program. Daniel Foote, 2005. 10074.jpg: 2009:11:01 07:15:40, Lat 40.569658, Long 116.730972, Elevation 402.901400. # 移除JPG中的GPS信息 $ gpscorrelate -r 10074.jpg EXIF-GPS Photo matching program. Daniel Foote, 2005. 10074.jpg: Removed GPS tags. $ gpscorrelate -s 10074.jpg EXIF-GPS Photo matching program. Daniel Foote, 2005. 10074.jpg: 2009:11:01 07:15:40, No GPS Data. # 用JPG的创建时间,去GPS记录的轨迹文件中找对应的坐标,找到后写入JPG的EXIF # 因为GPS轨迹文件中记录的时间都是UTC(时区为0),相机记录的JPG时间一般是本地时区,比如中国是 +8,这个偏差用 '-z +8' 来调整,这个 8小时是加在 GPS时间上 # JPG 与 GPS 时间秒上的偏差,用 '--photooffset 5' 来调整,这个 5s 是加在 JPG 时间上 $ gpscorrelate -z +8 --photooffset 5 -g /path/to/gps-track.gpx 1024.jpg 找不到对应时间点的,则在前后两个点之间插值计算