【Python-MP4文体提取】

Python-MP4文体提取

  • ■ pip 和 setuptools工具
  • ■ OpenCV和Tesseract
  • ■ Tesseract OCR V5.0安装教程(Windows)
    • ■ 1. 运行程序出现如下问题:我们需要安装Tesseract OCR
    • ■ 2. 下载Tesseract-OCR
    • ■ 3. 安装Tesseract-OCR
    • ■ 4. 添加到环境变量的系统变量(PATH)去
    • ■ 5. 增加一个TESSDATA_PREFIX变量名,
    • ■ 6. 打开终端,输入:tesseract -v,可以看到版本信息
    • ■ 7. 在pytesseract库下的pytesseract.py文件中找到tesseract_cmd = 'tesseract',修改成 tesseract_cmd =r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    • ■ 8. 再去运行程序
  • ■ 运行代码
  • ■ 运行代码2-openAI生成的

■ pip 和 setuptools工具

先对 pip 和 setuptools工具更新最新版本

python.exe -m pip install --upgrade pip setuptools   
或
pip install --upgrade pip setuptools

■ OpenCV和Tesseract

使用以下命令安装OpenCV和Tesseract:

pip install opencv-python
pip install tesseract

■ Tesseract OCR V5.0安装教程(Windows)

■ 1. 运行程序出现如下问题:我们需要安装Tesseract OCR

在这里插入图片描述

■ 2. 下载Tesseract-OCR

官方网站:https://github.com/tesseract-ocr/tesseract
官方文档:https://github.com/tesseract-ocr/tessdoc
语言包地址:https://github.com/tesseract-ocr/tessdata
下载地址:https://digi.bib.uni-mannheim.de/tesseract/

下载地址
在这里插入图片描述

■ 3. 安装Tesseract-OCR

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

■ 4. 添加到环境变量的系统变量(PATH)去

在这里插入图片描述

■ 5. 增加一个TESSDATA_PREFIX变量名,

增加一个TESSDATA_PREFIX变量名,变量值还是我的安装路径C:\Program Files\Tesseract-OCR\tessdata这是将语言字库文件夹添加到变量中;
在这里插入图片描述

■ 6. 打开终端,输入:tesseract -v,可以看到版本信息

在这里插入图片描述

■ 7. 在pytesseract库下的pytesseract.py文件中找到tesseract_cmd = ‘tesseract’,修改成 tesseract_cmd =r’C:\Program Files\Tesseract-OCR\tesseract.exe’

在这里插入图片描述
我的路径
D:\software\Python\Python312\Lib\site-packages\pytesseract
在这里插入图片描述

■ 8. 再去运行程序

在这里插入图片描述
结果提取的数据不符合预期要求

■ 运行代码

import cv2
import pytesseract
import re# 读取视频文件
def extract_frames(video_path):cap = cv2.VideoCapture(video_path)frames = []while cap.isOpened():ret, frame = cap.read()if not ret:breakframes.append(frame)cap.release()return frames# 文字识别
def recognize_text(image):text = pytesseract.image_to_string(image)return text# 降噪声或错误的字符
def process_text(text):processed_text = re.sub(r'\s+|[^\w\s]', '', text)return processed_text#video_path = 'E:\PythonProject\tcipy\1111111111.mp4'
video_path = '1111111111.mp4'frames = extract_frames(video_path)for frame in frames:text = recognize_text(frame)processed_text = process_text(text)print(processed_text)print('OK')

■ 运行代码2-openAI生成的

import cv2
import pytesseract
from pytesseract import Output
import pandas as pd# 打开MP4文件
cap = cv2.VideoCapture('video.mp4')# 检查文件是否成功打开
if not cap.isOpened():print("Error: Could not open video file.")exit()# 使用Tesseract进行OCR
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'# 初始化表格
data = {'Frame Number': [], 'Text': []}# 读取视频并解析文字内容
frame_number = 0
while True:# 从文件中读取一帧ret, frame = cap.read()# 检查是否成功读取帧if not ret:print("Error: Could not read frame.")break# 进行文字识别d = pytesseract.image_to_data(frame, output_type=Output.DICT)# 提取识别到的文字for i in range(len(d['text'])):text = d['text'][i].strip()if text:data['Frame Number'].append(frame_number)data['Text'].append(text)frame_number += 1# 释放资源
cap.release()# 创建DataFrame
df = pd.DataFrame(data)# 输出DataFrame到CSV文件
df.to_csv('text_from_video.csv', index=False)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang中的上下文-context包的简介及使用

文章目录 简介context.Background()上下文取消函数上下文值传递建议Reference 简介 Go语言中的context包定义了一个名为Context的类型,它定义并传递截止日期、取消信号和其他请求范围的值,形成一个链式模型。如果我们查看官方文档,它是这样说…

Ollama利用嵌入模型实现RAG应用

Ollama支持embedding models嵌入模型,从而支持RAG(retrieval augmented generation)应用,结合文本提示词,检索到文档或相关数据。嵌入模型是通过训练生成向量嵌入,这是一长串数字数组,代表文本序…

练习 21 Web [GXYCTF2019]BabySQli

SQL联合查询,注意有源码看源码,Base64以及32的区别,MD5碰撞 打开后有登录框,先随意登录尝试 只有输入admin才是返回wrong pass! 其他返回wrong user 所以用户名字段一定要输入admin 养成好习惯,先查看源码…

kali上python3切换python2环境

一、然后打开终端输入 python --version 二、 打开终端分别输入下面两条命令: update-alternatives --install /usr/bin/python python /usr/bin/python2 100 update-alternatives --install /usr/bin/python python /usr/bin/python3 150 三、 如果需要切换python版…

Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理

Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理 文章目录 Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理磁盘清理工具 使用“运行”命令访问磁盘清理利用存储感知自动管理空间清理WinSxS文件夹结合手动清理策略 小结删除临时文件总结&…

流式密集视频字幕

流式密集视频字幕 摘要1 IntroductionRelated Work3 Streaming Dense Video Captioning Streaming Dense Video Captioning 摘要 对于一个密集视频字幕生成模型,预测在视频中时间上定位的字幕,理想情况下应该能够处理长的输入视频,预测丰富、…

Linux系统概述与安装

Linux的介绍 Linux内核 Linux内核是 Linux 操作系统主要组件,也是计算机硬件与其软件之间的交互入口。它负责两者之间的通信,还要尽可能高效地管理资源 Linux Shell shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口 Linux文…

java数组.day16(冒泡排序,稀疏数组)

冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序! 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。 我们看到嵌套循环,应该立马就可以得出这个算法的时…

2024中国航空航天暨无人机展览会8月在重庆举办

2024中国航空航天暨无人机展览会8月在重庆举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 展会背景: 为更好的培养航空航天产业人才,汇聚航空教育产业创新科技,…

CTK插件框架学习-事件监听(07)

CTK插件框架学习-服务工厂(06)https://mp.csdn.net/mp_blog/creation/editor/137295686 一、简介 事件监听指当事件发生变化时所产生的通信,是动态的,对于已经发生过的事件无法监听 二、事件类型 1、框架事件 监听框架状态变化,因为监听…

usb_camera传输视频流编码的问题记录!

前言: 大家好,今天给大家分享的内容是,一个vip课程付费的朋友,在学习过程中遇到了一个usb采集的视频数据流,经过ffmpeg编码,出现了问题: 问题分析: 其实这个问题不难,关键…

git安装配置教程(小白保姆教程2024最新版)

目录 一、Git是什么?二、安装Git1.下载git2.安装git3.检测git 三、配置Git1.配置本地信息2.配置SSH1)SSH与SSH Key是什么?2)生成SSH Key3)获取ssh key公钥内容(id_rsa.pub)4)Github账号上添加公…

这段程序有点神奇,你能读懂么?

下面的程序在一个打开的文档中查找特定的字符串,这个字符串是“可以”,查找并仅保留最后的3次,抛弃其他的内容,请试运行一下,看看结果是否正确? from collections import deque def search(lines, pattern,…

【SpringBoot】配置swagger

pom.xml 安装插件 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>创建swagger配置类 import org.springframework.context.annotation.…

如何使用Tomcat+cpolar搭建本地站点并发布到公网分享好友远程访问

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器拥有强大功能&#xff0c;由于其可以实…

如何使用Java和RabbitMQ实现延迟队列?

前言 今天我们使用Java和RabbitMQ实现消息队列的延迟功能。 前期准备&#xff0c;需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和RabbitMQ实现消息队列&#xff1f;-CSDN博客 今天讲的是依赖RabbitMQ的延迟插件实现…

头歌-机器学习 第10次实验 逻辑回归

第1关&#xff1a;逻辑回归核心思想 任务描述 本关任务&#xff1a;根据本节课所学知识完成本关所设置的编程题。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 什么是逻辑回归&#xff1b; sigmoid函数。 什么是逻辑回归 当一看到“回归”这两个字&a…

【opencv】示例-falsecolor.cpp 使用OpenCV函数动态地对图像应用不同的色彩映射

该代码是一个使用OpenCV库实现的C程序&#xff0c;主要用来展示如何通过applyColorMap函数将色彩映射应用到一个灰度图像上&#xff0c;并提供一个滑动条来实时改变色彩映射的效果。此外&#xff0c;该程序还可以绘制包含不同形状的灰度图像&#xff0c;用作applyColorMap函数的…

QT 线程之movetothread

上文列举了qt中线程的几种方法&#xff0c;其中2种方法最为常见。 这两种方法都少不了QThread类&#xff0c;前者继承于QThread类&#xff0c;后者复合QThread类。 本文以实例的方式描述了movetothread&#xff08;&#xff09;这种线程的方法&#xff0c;将QObject的子类移动…

【MATLAB源码-第13期】基于matlab的4ASK的误码率BER和误符号率SER理论和实际对比仿真。

1、算法描述 "4ASK" 是一种数字调制技术&#xff0c;代表4级振幅移移键控&#xff08;4-Level Amplitude Shift Keying&#xff09;调制。它是一种数字通信中常用的调制方式之一&#xff0c;用于将数字信号转换为模拟信号以便传输&#xff0c;或者将模拟信号转换为数…