提取图片中的日期信息

# pip install paddlepaddle paddleocr

import cv2

import numpy as np

from paddleocr import PaddleOCR

import re



# 定义一个函数来提取日期和时间

def extract_dates_and_times(ocr_result):

    # 匹配日期格式

    date_patterns = [

        r'\d{4}年\d{1,2}月\d{1,2}日',  # 2024年07月01日

        r'\d{4}年\d{1,2}月\d{1,2}',    # 2024年07月01

        r'\d{1,2}-\d{1,2}-\d{4}',      # 07-01-2024

        r'\d{1,2}/\d{1,2}/\d{4}',      # 07/01/2024

        r'\d{1,2}\.\d{1,2}\.\d{4}'     # 07.01.2024

    ]

   

    # 匹配时间格式

    time_pattern = r'\d{2}:\d{2}:\d{2}'  # 16:46:46

   

    # 解析并提取日期和时间

    dates = []

    times = []

    for line in ocr_result:

        for box, (text, score) in line:

            print(f"Text: {text}, Score: {score}")

            # 去除中文字符并分割文本

            # cleaned_text = re.sub('[\u4e00-\u9fa5]', '', text).strip()



            cleaned_text = text.strip()

            cleaned_text = cleaned_text.replace(' ', '')

            print('=========cleaned_text:',cleaned_text)

            if cleaned_text:  # 确保文本非空

                for pattern in date_patterns:

                    match_date = re.search(pattern, cleaned_text)

                    if match_date:

                        date = match_date.group()

                        # print('发现日期:', date)

                        # 标准化日期格式

                        if '-' in date or '/' in date or '.' in date:

                            parts = re.split(r'[-/.]', date)

                            if len(parts) == 3:

                                year, month, day = None, None, None

                                # 判断是否是以年份开头

                                if len(parts[0]) == 4:  # 如果第一个部分是年份

                                    year, month, day = parts

                                else:  # 否则第一个部分是月或日

                                    month, day, year = parts



                                date = f"{int(year):04d}-{int(month):02d}-{int(day):02d}"

                        elif '年' in date:

                            date = date.replace('年', '-').replace('月', '-').replace('日', '')




                        dates.append(date)

               

                # 匹配时间

                match_time = re.search(time_pattern, cleaned_text)

                if match_time:

                    time = match_time.group()

                    print('发现时间:', time)

                    times.append(time)

   

    # 组合日期和时间

    if dates and times:

        date = dates[0]

        time = times[0]

        formatted_date_time = f"{date} {time}"

        return formatted_date_time

    else:

        return None

# 定义一个函数来获取图片中的时间信息

def extract_time_from_image(image_path):

    # 读取图片

    image = cv2.imread(image_path)

   

    # 使用PaddleOCR进行文字识别

    ocr = PaddleOCR(use_angle_cls=True, lang='ch')

    result = ocr.ocr(image, cls=True)

   

    # 提取日期和时间

    dates_and_times = extract_dates_and_times(result)

    return dates_and_times



if __name__ == "__main__":

    # 读取图片路径

    image_path = "/..../test1.png"



    # 调用函数并打印结果

    time_info = extract_time_from_image(image_path)



    # 输出最终结果

    if time_info:

        print(f"Formatted Date and Time: {time_info}")

    else:

        print("No valid date and time found in the image.")

PaddlePaddle是一个开源的深度学习平台,可以用于构建和训练深度学习模型。如果你想使用PaddlePaddle,可以通过源码编译的方式来安装。首先,你需要在Git Bash执行以下两条命令来将PaddlePaddle的源码克隆到本地,并进入Paddle目录: ``` git clone https://github.com/PaddlePaddle/Paddle.git cd Paddle ``` 接下来,你可以根据自己的需求进行编译。如果你使用的是Windows系统,可以使用源码编译来安装符合你需求的PaddlePaddle版本。具体的编译步骤可以参考官方文档的Windows下源码编译部分\[2\]。 如果你想在docker镜像编译PaddlePaddle,可以使用以下命令启动docker镜像并进行编译。如果你需要编译CPU版本,可以使用以下命令: ``` sudo docker run --name paddle-test -v $PWD:/paddle --network=host -it hub.baidubce.com/paddlepaddle/paddle:latest-dev /bin/bash ``` 如果你需要编译GPU版本,可以使用以下命令: ``` sudo nvidia-docker run --name paddle-test -v $PWD:/paddle --network=host -it hub.baidubce.com/paddlepaddle/paddle:latest-dev /bin/bash ``` 以上是关于使用源码编译PaddlePaddle的一些基本步骤和命令。你可以根据自己的需求和操作系统选择适合的方式来安装PaddlePaddle。 #### 引用[.reference_title] - *1* *2* *3* [《PaddlePaddle从入门到炼丹》一——新版本PaddlePaddle的安装](https://blog.csdn.net/qq_33200967/article/details/83052060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值