图片处理的相关操作

上一节中涉及到了PDF文件的处理操作,

但是PDF文件部分是扫描生成的,网上给出的解决方法有一些。

但是,我觉得,扫描全能王挺好用的。 

https://www.camscanner.com/pdftoword

 git

图片的识别操作 

#图片文字识别
#https://zhuanlan.zhihu.com/p/349621620
import easyocr
# 创建reader对象,指定语言为简写中文
# 该命令只需要运行一次就可以将model加载到内存中
reader = easyocr.Reader(['ch_sim','en'])
# 读取图像
result = reader.readtext('img.png',detail=False)
#字母识别
import ddddocr

ocr = ddddocr.DdddOcr()
with open('shibie.png', 'rb') as f:
    img_bytes = f.read()
res = ocr.classification(img_bytes)

print(res)
#滑块识别
import ddddocr

det = ddddocr.DdddOcr(det=False, ocr=False)

with open('hycdn.png', 'rb') as f:
    target_bytes = f.read()

with open('background.png', 'rb') as f:
    background_bytes = f.read()

res = det.slide_match(target_bytes, background_bytes, simple_target=True)

print(res)
#点选验证码识别
det = ddddocr.DdddOcr(det=True)

with open("dianxuan.png", 'rb') as f:
        image = f.read()

poses = det.detection(image)
print(poses)
im = cv2.imread("dianxuan.png")
#勾选汉字
for box in poses:
        x1, y1, x2, y2 = box
        im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)

cv2.imwrite("dianxuan.png", im)

文件归档操作


#文件归档,将PDF文件归到一个文件夹下
import os
import re
import shutil
file_list=os.listdir(r'../标准文本挖掘')#返回的是当前文件夹下文件的目录
# os.walk()#可以返回更深的文件目录下的文件
print(file_list)
os.makedirs('../标准文本挖掘/new_pdf',exist_ok=True)
for fname in file_list:
    ftype=re.findall('.*\.(.*)',fname)#返回的是一个列表['docx']
    if ftype[0]=='pdf':
        print(fname)
        oldpath=os.path.join('../标准文本挖掘',fname)
        newpath=os.path.join('../标准文本挖掘/new_pdf/',fname)
        shutil.move(oldpath,newpath)

菜鸟一枚 -----------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Canvas的requestAnimationFrame方法是用于在浏览器执行动画的优化方法。它可以在每一帧之间进行平滑的动画过渡,避免了使用setTimeout或setInterval方法可能出现的性能问题。 在图片处理方面,可以使用Canvas的2D上下文对象来进行绘制和处理。以下是一个简单的示例代码,展示了如何使用requestAnimationFrame方法进行图片处理: ```javascript // 获取canvas元素和2D上下文对象 const canvas = document.getElementById('myCanvas'); const ctx = canvas.getContext('2d'); // 创建一个Image对象 const image = new Image(); image.src = 'path/to/image.jpg'; // 定义图片处理函数 function processImage() { // 清空画布 ctx.clearRect(0, 0, canvas.width, canvas.height); // 绘制图片到画布上 ctx.drawImage(image, 0, 0); // 图片处理逻辑 // ... // 请求下一帧动画 requestAnimationFrame(processImage); } // 加载图片完成后开始处理 image.onload = function() { requestAnimationFrame(processImage); }; ``` 在上述代码,首先获取了一个canvas元素和2D上下文对象。然后创建了一个Image对象,并设置其src属性为要处理图片路径。接着定义了一个processImage函数,该函数会在每一帧进行图片处理操作。在函数内部,首先清空画布,然后使用drawImage方法将图片绘制到画布上。接下来可以在处理逻辑图片进行各种操作,例如滤镜效果、裁剪、旋转等。最后通过requestAnimationFrame方法请求下一帧动画,实现连续的图片处理效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YingJingh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值