【python】图像、音频、视频等文件数据采集

news2024/12/26 19:43:46

【python】图像、音频、视频等文件数据采集

  • 先安装所需要的工具
    • 一、Tesseract-OCR
      • Tesseract-OCR环境变量设置
      • 验证是否配置成功
      • 示例
      • 语言包下载失败
    • 二、ffmpeg
      • 验证是否安装成功
      • 示例

先安装所需要的工具

一、Tesseract-OCR

Tesseract是一个 由HP实验室开发 由Google维护的开源的光学字符识别(OCR)引擎,可以在 Apache 2.0 许可下获得。它可以直接使用,或者(对于程序员)使用 API​​ 从图像中提取输入,包括手写的或打印的文本。

以下是关于Tesseract的常用网址
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
官方网站:https://github.com/tesseract-ocr/tesseract
语言包地址:https://github.com/tesseract-ocr/tessdata

下载最新的就行

在这里插入图片描述
下载好了进行安装即可,
就是到这里注意一下,把框框中的那两个勾选上,他会自动下载语言包,

在这里插入图片描述

到安装位置这里的时候,建议把位置换到D盘,路径最好不要有中文,不要引起一些奇奇怪怪的报错,选好路径后,要把这个路径复制下来,可以先放一个笔记里面,一会配置环境变量要用的

在这里插入图片描述
后面就这里按照步骤进行就可以了。

Tesseract-OCR环境变量设置

安装好以后我们设置一下环境变量,用起来会舒服一些。
首先电脑Win加R键
然后输入sysdm.cpl这个命令回车
在这里插入图片描述
点击环境变量,之后找到系统变量,再找到path点击编辑
如图;
在这里插入图片描述

点击这里看的新建,按当时复制的安装路线复制进去,之后一直点确定,点到退出那个界面就好了,
在这里插入图片描述
现在就可以使用了

验证是否配置成功

打开命令提示符(CMD)

按下 Win + R 键,输入 cmd 并回车,打开命令提示符。

检查 Tesseract 是否安装

在命令提示符中输入 tesseract -v 并回车。

如果 Tesseract - OCR 环境配置正确,会显示 Tesseract 的版本信息,
在这里插入图片描述

示例

先安装需要的库

pip install Pillow

pip install pytesseract

代码
提取中文

import pytesseract
from PIL import Image

def OCR_demo():
    # 导入OCR安装路径,如果设置了系统环境,就可以不用设置了
    # pytesseract.pytesseract.tesseract_cmd = r"D:\Program Files\Tesseract-OCR\tesseract.exe"
    # 打开要识别的图片

    image = Image.open('one.jpeg')
    # 使用pytesseract调用image_to_string方法进行识别,传入要识别的图片,lang='chi_sim'是设置为中文识别,
    text = pytesseract.image_to_string(image, lang='chi_sim')

    print(text)


if __name__ == '__main__':
    OCR_demo()

识别结果
在这里插入图片描述

提取数字

from PIL import Image
import pytesseract


# 如果 tesseract 不是安装在默认路径,请取消注释并设置正确的路径
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

def ocr_numbers(image_path, output_txt_path):
    # 打开图像文件
    image = Image.open(image_path)

    # 使用 pytesseract 进行 OCR 识别
    # 由于是数字,我们不需要特别指定语言包
    text = pytesseract.image_to_string(image)

    # 提取并只保存数字(可选,如果图像中只包含数字,这一步可以省略)
    # 这里使用简单的正则表达式来提取数字
    import re
    numbers = re.findall(r'\d+', text)
    numbers_str = ' '.join(numbers)  # 将数字列表转换为字符串,用空格分隔

    # 将识别出的数字保存到指定的 .txt 文件中
    with open(output_txt_path, 'w') as file:
        file.write(numbers_str)

    # 在控制台输出已识别的消息
    print("已识别数字并保存到:", output_txt_path)


# 替换为你的图像文件路径和想要保存的 .txt 文件路径
image_path = '数字.jpg'
output_txt_path = '数字.txt'

# 调用函数进行 OCR 识别并保存结果
ocr_numbers(image_path, output_txt_path)

提取英文

from PIL import Image
import pytesseract


# 如果 pytesseract 不是安装在默认路径,请设置正确的路径
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'  # Windows 示例
# pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract'  # macOS 示例(可能需要调整)
# pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'  # Linux 示例(可能需要调整)

def ocr_english_text(image_path, output_txt_path):
    # 打开图像文件
    image = Image.open(image_path)

    # 使用 pytesseract 进行 OCR 识别
    text = pytesseract.image_to_string(image, lang='eng')  # 指定语言为英语

    # 将识别出的文本保存到指定的 .txt 文件中
    with open(output_txt_path, 'w', encoding='utf-8') as file:
        file.write(text)

    # 在控制台输出已识别的消息
    print("已识别英语文本并保存到:", output_txt_path)


# 替换为你的图像文件路径和想要保存的 .txt 文件路径
image_path = '英语.jpg'
output_txt_path = '英语识别结果.txt'

# 调用函数进行 OCR 识别并保存结果
ocr_english_text(image_path, output_txt_path)

语言包下载失败

当上面已经是安装好了,但是可能会有人遇见这种情况,这就语言包下载失败,就需要我们单独去下载语言包了。
语言包地址:https://github.com/tesseract-ocr/tessdata

在这里插入图片描述
如图下载图片上面这两个语言包就可以了(点进去里面有下载)

要获取适用于Tesseract 3.04或3.05的语言数据文件,请从3.04分支获取。

更多信息以及所有语言的完整列表,请参阅Tesseract维基百科。

在这里插入图片描述
下载好以后把这两个文件复制到你的Tesseract-OCR\tessdata这个文件夹就可以了。

二、ffmpeg

简介
FFmpeg全称为Fast Forward Moving Picture Experts Group,于2000年诞生,是一款免费,开源的音视频编解码工具及开发套件。它的功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes)。

官网链接;https://www.ffmpeg.org/download.html#build-windows
官网界面,根据自己的系统,下载相应的版本下载,
在这里插入图片描述

选择一个下载,就第一个就可以7z格式的。
在这里插入图片描述
下载好以后,需要先解压,解压完后,

就需要添加环境变量了,就和上面差不多的流程,

唯一不一样的是路径要准确到bin文件

这样就不用每次都指定路径了这点和上面是一样的。

先win加r键,这个上面都有了,按照上面的来就可以了
在这里插入图片描述
唯一和上面不一样的是这个要准确到bin文件
路径应该是这个样子的才可以

D:\ffmpeg-5.0.1-essentials_build\ffmpeg-5.0.1-essentials_build\bin

之后就和上面都一样了,确定、确定、确定。

验证是否安装成功

打开命令提示符cmd窗口

输入命令ffmpeg -version

如果你看到打印出 FFmpeg 版本,则表示 FFmpeg 安装成功。
在这里插入图片描述

示例

提取视频中的音频

from moviepy.editor import VideoFileClip

# 视频文件路径
video_file_path = '大棋局.mp4'  # 替换为你的MP4视频文件路径

# 创建一个VideoFileClip对象
video = VideoFileClip(video_file_path)

# 从视频中提取音频
audio = video.audio

# 设置输出音频文件路径和格式
output_audio_file_path = 'output_audio.mp3'  # 你可以根据需要更改输出文件名和格式

# 写入音频文件
audio.write_audiofile(output_audio_file_path)

# 释放资源
video.close()
audio.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2251925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟机docker记录

最近看了一个up的这个视频,感觉docker真的挺不错的,遂也想来搞一下: https://www.bilibili.com/video/BV1QC4y1A7Xi/?spm_id_from333.337.search-card.all.click&vd_sourcef5fd730321bc0e9ca497d98869046942 这里我用的是vmware安装ubu…

C++STL之vector(超详细)

CSTL之vector 1.vector基本介绍2.vector重要接口2.1.构造函数2.2.迭代器2.3.空间2.3.1.resize2.3.2.capacity 2.4.增删查找 3.迭代器失效4.迭代器分类 🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀&#x1f68…

深度学习实验十三 卷积神经网络(4)——使用预训练resnet18实现CIFAR-10分类

目录 一、数据加载 二、数据集类构建 三、模型构建 四、模型训练 五、模型评价及预测 附完整可运行代码: 实验大体步骤: 注: 在自己电脑的CPU跑代码 连接远程服务器跑代码√ 本次实验由于数据量巨大,我的笔记本上还没有…

【Maven Helper】分析依赖冲突案例

目录 Maven Helper实际案例java文件pom.xml文件运行抛出异常分析 参考资料 《咏鹅》骆宾王 鹅,鹅,鹅,曲项向天歌。 白毛浮绿水,红掌拨清波。 骆宾王是在自己7岁的时候就写下了这首杂言 Maven Helper A must have plugin for wor…

Android 桌面窗口新功能推进,聊一聊 Android 桌面化的未来

Android 桌面化支持可以说是 Android 15 里被多次提及的 new features,例如在 Android 15 QPR1 Beta 2 里就提到为 Pixel 平板引入了桌面窗口支持,桌面窗口允许用户在自由窗口同时运行多个应用,同时可以像在传统 PC 平台上一样调整这些窗口的…

【深度学习】四大图像分类网络之VGGNet

2014年,牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司一起研发了新的卷积神经网络,并命名为VGGNet。VGGNet是比AlexNet更深的深度卷积神经网络,该模型获得了2014年ILSVRC竞赛的第二名&#xff0c…

Pytest框架学习20--conftest.py

conftest.py作用 正常情况下,如果多个py文件之间需要共享数据,如一个变量,或者调用一个方法 需要先在一个新文件中编写函数等,然后在使用的文件中导入,然后使用 pytest中定义个conftest.py来实现数据,参…

【力扣】389.找不同

问题描述 思路解析 只有小写字母,这种设计参数小的,直接桶排序我最开始的想法是使用两个不同的数组,分别存入他们单个字符转换后的值,然后比较是否相同。也确实通过了 看了题解后,发现可以优化,首先因为t相…

HarmonyOS4+NEXT星河版入门与项目实战(23)------组件转场动画

文章目录 1、控件图解2、案例实现1、代码实现2、代码解释3、实现效果4、总结1、控件图解 这里我们用一张完整的图来汇整 组件转场动画的用法格式、属性和事件,如下所示: 2、案例实现 这里我们对上一节小鱼游戏进行改造,让小鱼在游戏开始的时候增加一个转场动画,让小鱼自…

Wireshark常用功能使用说明

此处用于记录下本人所使用 wireshark 所可能用到的小技巧。Wireshark是一款强大的数据包分析工具,此处仅介绍常用功能。 Wireshark常用功能使用说明 1.相关介绍1.1.工具栏功能介绍1.1.1.时间戳/分组列表概况等设置 1.2.Windows抓包 2.wireshark过滤器规则2.1.wiresh…

Vue3 开源UI 框架推荐 (大全)

一 、前言 💥这篇文章主要推荐了支持 Vue3 的开源 UI 框架,包括 web 端和移动端的多个框架,如 Element-Plus、Ant Design Vue 等 web 端框架,以及 Vant、NutUI 等移动端框架,并分别介绍了它们的特性和资源地址。&#…

探索Python词云库WordCloud的奥秘

文章目录 探索Python词云库WordCloud的奥秘1. 背景介绍:为何选择WordCloud?2. WordCloud库简介3. 安装WordCloud库4. 简单函数使用方法5. 应用场景示例6. 常见Bug及解决方案7. 总结 探索Python词云库WordCloud的奥秘 1. 背景介绍:为何选择Wo…

Kali Linux系统一键汉化中文版及基础使用详细教程

Kali Linux系统一键汉化中文版及基础使用详细教程 引言 Kali Linux是一款基于Debian的Linux发行版,专为渗透测试和网络安全而设计。由于其强大的功能和丰富的工具,Kali Linux在安全领域得到了广泛应用。然而,许多用户在使用Kali Linux时会遇…

网络安全(三):网路安全协议

网络安全协议设计的要求是实现协议过程中的认证性、机密性与不可否认性。网络安全协议涉及网络层、传输层与应用层。 1、网络层安全与IPSec协议、IPSec VPN 1.1、IPSec安全体系结构 IP协议本质上是不安全的额,伪造一个IP分组、篡改IP分组的内容、窥探传输中的IP分…

2. STM32_中断

中断 中断是什么: 打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断。 中断的意义: 中断可以高效处理紧急程序,不会一直占用CPU资源。如实时控制、故障处理、处理不确定…

【聚类】主成分分析 和 t-SNE 降维

1 主成分分析PCA PCA 是一种线性降维技术,旨在通过选择具有最大方差的特征方向(称为主成分)来压缩数据,同时尽可能减少信息损失。 1.1 原理 1.2 优缺点 from sklearn.decomposition import PCA import matplotlib.pyplot as plt…

ARM 嵌入式处理器内核与架构深度剖析:解锁底层技术逻辑

目录 一、ARM架构概述 1.1. 优势与特点 1.2. 应用领域 二、ARM内核的主要系列及特点 2.1. ARM内核与架构的关系 2.2. Cortex-A系列 2.2.1. 应用场景 2.2.2. 特点 2.3. Cortex-R系列 2.3.1. 应用场景 2.3.2. 特点 2.4. Cortex-M系列 2.4.1. 应用场景 2.4.2. 特点 …

数据结构 (21)树、森林和二叉树的关系

一、树 定义:树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。当集合为空时,是一棵空树;当集合非空时,有且仅有一个特定的称为根的结点。树中的每个结点可以有…

探索温度计的数字化设计:一个可视化温度数据的Web图表案例

随着科技的发展,数据可视化在各个领域中的应用越来越广泛。在温度监控和展示方面,传统的温度计已逐渐被数字化温度计所取代。本文将介绍一个使用Echarts库创建的温度计Web图表,该图表通过动态数据可视化展示了温度值,并通过渐变色…

计算机网络——数据链路层Mac帧详解

目录 前言 一、以太网 二、Mac帧 三、MTU——最大传输单元 四、Mac帧的传输过程 1.ARP协议 2.RARP协议 前言 在之前,我们学习过网络层的IP协议,了解到IP协议解决了从哪里来,到哪里去的问题,也就是提供了将数据从A到B的能力…