当前位置: 首页 > news >正文

界面做的比较好的网站百度推广的方式

界面做的比较好的网站,百度推广的方式,如何制作企业官网,怎么用自己电脑做服务器发布网站吗前段时间我写了Python识别拖放的PDF文件再转成文本文件-CSDN博客 最近有2点更新,一是有一些pdf文件转换出来的图片是横的,这样也可以识别文字,但是可能会影响效果,另一个是发现有一些文字识别不出来,看了关于提高Padd…

前段时间我写了Python识别拖放的PDF文件再转成文本文件-CSDN博客

最近有2点更新,一是有一些pdf文件转换出来的图片是横的,这样也可以识别文字,但是可能会影响效果,另一个是发现有一些文字识别不出来,看了关于提高PaddleOCR识别准确率的一些优化(一)_如何提高paddleocr识别准确率-CSDN博客发现是图片文件的尺寸太大了,为此将其缩小一半再识别。确实提高了识别率。

代码:

# -*- coding: utf-8 -*-
"""
Created on Sun Aug 25 10:42:39 2024@author: YBK
"""import tkinter as tk
import windnd
from tkinter.messagebox import showinfo
import os
from PIL import Image
import fitz
from fitz import Document as openPDF
import time
import re
from paddleocr import PaddleOCR
import subprocessdef dec_to_36(num):base = [str(x) for x in range(10)] + [chr(x) for x in range(ord('A'),ord("A")+26)]# 前者把 0 ~ 9 转换成字符串存进列表 base 里,后者把 A ~ Z 存进列表l = []if num<0:return "-"+dec_to_36(abs(num))while True:num,rem = divmod(num,36) # 求商 和 留余数l.append(base[rem])if num == 0:return "".join(l[::-1])def nowtime_to_str():#将当前时间戳转化为36进制,约6位字符,减少文件名长度unix_timestamp = int(time.time())return(dec_to_36(unix_timestamp))def pdf2pic(path, pic_path):'''# 从pdf中提取图片:param path: pdf的路径:param pic_path: 图片保存的路径:return:'''t0 = time.perf_counter()# 使用正则表达式来查找图片checkXO = r"/Type(?= */XObject)"checkIM = r"/Subtype(?= */Image)"# 打开pdfdoc = openPDF(path)# 图片计数imgcount = 0lenXREF = doc.xref_length()# 打印PDF的信息print("文件名:{}, 页数: {}, 对象: {}".format(path, len(doc), lenXREF - 1))# 遍历每一个对象for i in range(1, lenXREF):# 定义对象字符串text = doc.xref_object(i)isXObject = re.search(checkXO, text)# 使用正则表达式查看是否是图片isImage = re.search(checkIM, text)# 如果不是对象也不是图片,则continueif not isXObject or not isImage:continueimgcount += 1# 根据索引生成图像pix = fitz.Pixmap(doc, i)# 根据pdf的路径生成图片的名称# new_name = path.replace('\\', '_') + "_img{}.png".format(imgcount)# new_name = new_name.replace(':', '')new_name = os.path.basename(path).replace('.pdf', '_') + "img" + str(imgcount).zfill(3) + ".png"# 如果pix.n<5,可以直接存为PNGif pix.n < 5:pix._writeIMG(os.path.join(pic_path, new_name),1,10)# 否则先转换CMYKelse:pix0 = fitz.Pixmap(fitz.csRGB, pix)pix0._writeIMG(os.path.join(pic_path, new_name),1,10)pix0 = None# 释放资源pix = Noneimage = Image.open(os.path.join(pic_path, new_name))#对于尺寸大于2000 * 2000的图像,缩放至(h * 0.5,w * 0.5)识别准确率有所提升if image.width > 2000 or image.height > 2000:new_image = image.resize((int(image.width * 0.5), int(image.height * 0.5)))new_image.save(os.path.join(pic_path, new_name))print("缩小图片尺寸")new_image.close()image = Image.open(os.path.join(pic_path, new_name))#对于图片宽度大于高度,左旋转if image.width > image.height: rotated_img = image.transpose(Image.ROTATE_90)print("左旋转")rotated_img.save(os.path.join(pic_path, new_name))           image.close()t1 = time.perf_counter()print("运行时间:{}s".format(t1 - t0))print("提取了{}张图片".format(imgcount))
def get_file_size(file_path):# 获取文件的大小(单位为字节)file_size = os.stat(file_path).st_sizereturn file_size
def dragged_files(files):fileurl = ''if len(files) > 1:# print("请拖放一个文件!")showinfo("提示","请拖放一个文件!")else:# print(files[0].decode('gbk'))fileurl = files[0].decode('gbk')# print(os.path.splitext(fileurl)[1])if fileurl != '' and os.path.splitext(fileurl)[1] == '.pdf':pdfpath = fileurlfilename0 = os.path.basename(fileurl).replace('.pdf','') + nowtime_to_str()# filename0 用于生成文件夹和文件名,为了不重复,在后面加入编码后的时间戳pic_path = f'e:\\临时文件夹\\{filename0}\\'if not os.path.exists(pic_path):os.mkdir(pic_path)m = pdf2pic(pdfpath, pic_path)pngpath = pic_pathouttxtpath = 'e:\\临时文件夹\\'+filename0+'.txt'ocr = PaddleOCR(use_angle_cls=True, lang="ch") # need to run only once to download and load model into memorylines = []for filename in os.listdir(pngpath):img_path = pngpath+filenameresult = ocr.ocr(img_path, cls=True)print(img_path)# image = Image.open(img_path).convert('RGB')if result[0] is not None:boxes = [detection[0] for line in result for detection in line] # Nested loop addedtxts = [detection[1][0] for line in result for detection in line] # Nested loop addedscores = [detection[1][1] for line in result for detection in line] # Nested loop addedfor box, txt, score in zip(boxes, txts, scores):if score > 0.7:# lines.append(txt.replace('\n',''))lines.append(txt+'\n')# lines.append('\n')with open(outtxtpath, 'w', encoding='utf-8') as f:f.writelines(line for line in lines)subprocess.run(['notepad.exe', outtxtpath], check=True)if __name__ == '__main__':rootWindow = tk.Tk()rootWindow.title("拖放PDF文件识别文字")rootWindow.geometry("300x120")windnd.hook_dropfiles(rootWindow , func=dragged_files)rootWindow.mainloop()

http://www.hkea.cn/news/468873/

相关文章:

  • 公司网站邮箱费用磁力宅在线搜种子
  • wordpress 缺少临时文件夹刷关键词优化排名
  • 做网站要有什么团队淘宝关键词排名查询工具
  • 开源门户网站源码宁波谷歌seo
  • wordpress+一页一屏seo关键技术有哪些
  • 学校校园网站建设实施方案精准营销的案例
  • 腾讯云服务器可以做网站可以推广发广告的app
  • seo外链友情链接网站运营推广选择乐云seo
  • 做网站 要学 什么语言网站优化公司
  • 天乐测绘网做网站吗搜索引擎广告图片
  • 湖南营销型网站建设多少钱百度关键词优化软件网站
  • 怎样给网站做关键词优化百度词条
  • 做网站哪个平台搭建网站需要什么技术
  • 做gif图的网站简述网络营销的主要方法
  • 做图网站被告seo视频网页入口网站推广
  • 做的网站底部应该标注什么意思免费文案素材网站
  • 企业网站搜索引擎拓客农夫山泉软文300字
  • 青岛黄岛区网站开发武汉seo优化
  • 东莞做网站企业铭会员制营销
  • 做网站设计工资多少钱优化教程网官网
  • 计算机网站建设与维护百度关键词统计
  • wordpress网站实现微信登录google google
  • 网站建设 零基础网站关键词如何优化
  • 如何撤销网站上信息app网站
  • 单页式网站系统每日新闻摘要30条
  • 网站开发公司 广告词优化方案电子版
  • 做便民工具网站怎么样关键词挖掘站长工具
  • 纺织面料做哪个网站好百度站长资源
  • 菏泽网站建设哪好怎样做平台推广
  • 网上有做logo的网站吗网络营销的核心是什么