Python数据获取实现图片数据提取

 更新时间:2022年05月30日 11:26:47   作者:温欣'  
本文主要介绍了Python数据获取实现图片数据提取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

比如我随便从手机上传一张图片到我的电脑里,通过python可以获取这张照片的所有信息。如果是数码相机拍摄的照片,我们在属性里可以找到照片拍摄的时间,拍摄的经纬度,海拔高度。
那么这些信息有什么作用呢?

有很多功能…比如用户画像,客户信息标签设定等等,用户喜欢拍摄照片的季节,时间点,所使用的相机的参数指标可以反应出一个人的金钱状况,对于其拍摄的内容,我们可以通过AI的方式对照片的内容信息进行提取,从而判断一个人的兴趣爱好

在这里插入图片描述

一、利用exifread提取图片的EXIF信息

exifread介绍:

EXIF信息,是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。EXIF可以附加于JPEGTIFFRIFF等文件之中,为其增加有关数码相机拍摄信息的内容和索引图或图像处理软件的版本信息。

首先要安装ExifRead

pip3 install ExifRead
pic=r'D:\S072003Python\input\test\test.jpg'

import exifread
f = open(pic, 'rb')
tags = exifread.process_file(f)
print(tags) #内有相机型号,拍摄时间,经纬度等

在这里插入图片描述

tags

在这里插入图片描述

print(tags)和tags获取数据的格式不同。

tags['Image ImageWidth']
tags['Image ImageLength']
tags['Image ExifOffset']
tags['Image Orientation']
tags['Image DateTime']
tags['EXIF WhiteBalance']
tags['EXIF ISOSpeedRatings']
tags['EXIF FocalLength']
tags['EXIF Flash']
tags['EXIF LightSource']
exifcolumns=['Image ImageWidth','Image ImageLength','Image ExifOffset','Image Orientation','Image DateTime','EXIF WhiteBalance','EXIF ISOSpeedRatings','EXIF FocalLength','EXIF Flash','EXIF LightSource'] # 把要提取的数据都封装在列表当中
for i in range(len(exifcolumns)):
    print(tags[exifcolumns[i]]) # 使用循环拿到所有的数据

在这里插入图片描述

二、循环遍历图片信息

任务:一次性获得以下图片的"Image ImageWidth"信息。写一个循环即可:

在这里插入图片描述

import exifread
import os
import pandas as pd 
import glob 
pic_list=glob.glob(r'C:\Users\Lenovo\Pictures\Saved Pictures\*.jpg')  # 如果是png,jpeg,bmp等数据格式,如何设置?

for i in pic_list:
    fr=open(i,'rb')
    tags=exifread.process_file(fr)
    if "Image ImageWidth" in tags:  # 条件判断,因为并不是所有的照片都有"Image ImageWidth"
        print(tags["Image ImageWidth"])   
# 经纬度获取
import exifread
import os
import pandas as pd 
import glob 
pic_list=glob.glob(r'C:\Users\Lenovo\Pictures\Saved Pictures\*.jpg')  

latlonlists=[]
for i in pic_list:
    fr=open(i,'rb')
    tags=exifread.process_file(fr)
    if "GPS GPSLatitude" in tags:  # 条件判断,因为并不是所有的照片都有"Image ImageWidth"
        # 维度转换
        lat_ref=tags["GPS GPSLatitudeRef"]
        lat=tags["GPS GPSLatitude"].printable[1:-1].replace(" ","").replace("/",",").split(",")
        lat=float(lat[0])+float(lat[1])/60+float(lat[2])/3600
        if lat_ref  in  ["N"]:    # 表示是南半球的数据
            lat=lat*(-1)
        # 经度转换
        lon_ref=tags["GPS GPSLongitudeRef"]
        lon=tags["GPS GPSLongitude"].printable[1:-1].replace("","").replace("/",",").split(",")
        lon=float(lon[0])+float(lon[1])/60+float(lon[2])/3600
        if lon_ref  in  ["E"]:    # 表示是西半球的数据
            lon=lon*(-1)
            
        print("维度:",lat,"经度:",lon)
        latlonlist=[lat,lon]
        latlonlists.append(latlonlist)  

 到此这篇关于Python数据获取实现图片数据提取的文章就介绍到这了,更多相关Python 图片数据提取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • matplotlib绘制多个子图(subplot)的方法

    matplotlib绘制多个子图(subplot)的方法

    这篇文章主要介绍了matplotlib绘制多个子图(subplot)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • python中使用ctypes调用so传参设置遇到的问题及解决方法

    python中使用ctypes调用so传参设置遇到的问题及解决方法

    这篇文章主要介绍了python中使用ctypes调用so传参设置,本文较详细的给大家介绍了遇到问题及解决方案,需要的朋友可以参考下
    2019-06-06
  • Python机器学习之SVM支持向量机

    Python机器学习之SVM支持向量机

    这篇文章主要为大家详细介绍了Python机器学习之SVM支持向量机,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • python中GIL锁的实现

    python中GIL锁的实现

    GIL是CPython中的一种线程锁机制,确保同一时间只有一个线程执行Python代码,本文就来介绍一下python中GIL锁的实现,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • Python编程利用科赫曲线实现三维飘雪效果示例过程

    Python编程利用科赫曲线实现三维飘雪效果示例过程

    这篇文章主要介绍了Python编程实现三维飘雪效果示例过程,通过本示例你可以自己做出一个浪漫的雪花飘落效果,有需要的朋友可以借鉴参考下
    2021-10-10
  • python 配置uwsgi 启动Django框架的详细教程

    python 配置uwsgi 启动Django框架的详细教程

    这篇文章主要介绍了python 配置uwsgi 启动Django框架,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Python数据可视化之环形图

    Python数据可视化之环形图

    这篇文章主要介绍了Python数据可视化之环形图,主要使用两种不同的方式来可视化环形图,并均给出了完整的代码示例。需要的朋友可以参考一下,希望对你的工作和学习有所帮助
    2022-01-01
  • Python2.7环境Flask框架安装简明教程【已测试】

    Python2.7环境Flask框架安装简明教程【已测试】

    这篇文章主要介绍了Python2.7环境Flask框架安装方法,结合实例形式详细分析了Python2.7环境下安装Flask框架遇到的问题与相关解决方法、注意事项,并给出了一个基本的测试示例,需要的朋友可以参考下
    2018-07-07
  • Python实现自定义包的实例详解

    Python实现自定义包的实例详解

    这篇文章主要介绍了实现自定义包的方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 开启Django博客的RSS功能的实现方法

    开启Django博客的RSS功能的实现方法

    这篇文章主要介绍了开启Django博客的RSS功能的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论